如何将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
。
答案 0 :(得分:4)
你可以用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