在 Python 中将数据帧保存为 CSV

Joa*_*nne 4 python dictionary dataframe pandas

我试图将此代码的结果保存为 CSV 文件:

import pandas as pd

df = pd.DataFrame({'ID': ['a01', 'a01', 'a01', 'a01', 'a01', 'a01', 'a01', 'a01', 'a01', 'b02', 'b02','b02', 'b02', 'b02', 'b02', 'b02'],
                   'Row': [1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 1, 2, 2, 3, 3, 3],
                   'Col': [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 3, 1, 3, 1, 2, 3],
                   'Result': ['p', 'f', 'p', 'p', 'p', 'f', 'p', 'p', 'p', 'p', 'p', 'p', 'f', 'p', 'p', 'p']})


dfs = {}
for n, g in df.groupby('ID'):
    dfs[n] = g.pivot('Row', 'Col', 'Result').fillna('')
    print(f'ID: {n}')
    print(dfs[n])
    print('\n')
    print(dfs[n].stack().value_counts().to_dict())
    print('\n')
Run Code Online (Sandbox Code Playgroud)

我找到了几种方法并尝试将输出(字典形式)保存到CSV文件中,但没有成功。有什么想法吗?

PS这是我找到的方法之一,但我不知道如何根据我的输出命名列?

with open("Output.csv", "w", newline="") as csv_file:
  cols = ["???????????"] 
  writer = csv.DictWriter(csv_file, fieldnames=cols)
  writer.writeheader()
  writer.writerows(data)
Run Code Online (Sandbox Code Playgroud)