如何将 pandas
groupby 结果——包括零交叉项——输出到 csv 文件。
正是我正在寻找的玩具示例:
我有一个 pandas
数据框,可以近似为:
df = pd.DataFrame(np.random.choice(['A', 'B', 'C'], (10, 2)),
columns=['one', 'two'])
这给了我以下内容:
one two
0 C C
1 C A
2 A B
3 B A
4 B C
5 B B
6 C C
7 A C
8 C B
9 C C
当我运行 groupby 时,它按预期工作:
grouped = df.groupby(['one', 'two']).size()
grouped
one two
A B 1
C 1
B A 1
B 1
C 1
C A 1
B 1
C 3
dtype: int64
但是,我希望包含“A A 0”一词,因为我将其写入 csv 文件:
grouped.to_csv("test1.csv", header=True)
!cat test1.csv
one,two,0
A,B,1
A,C,1
B,A,1
B,B,1
B,C,1
C,A,1
C,B,1
C,C,3
我希望文件包含以下行:A,A,0
。
最佳答案
你可以用 unstack 来做到这一点:
grouped.unstack('two').fillna(0).stack()
例如,它给出以下输出:
one two
A A 2
B 1
C 1
B A 0
B 1
C 3
C A 2
B 0
C 0
关于python - 如何在 pandas groupby 中包含零交叉项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30063063/