python - 如何在 pandas groupby 中包含零交叉项?

标签 python csv pandas

如何将 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/

相关文章:

python - 替换另一列中的缺失值 - pandas

php - 使用 CSV 文件更新 MySQL 表

python - Pandas groupby 给出任何非 nan 值

python - 本地主机和 pythonanywhere 上的 OAuth

python - 如何自动选择和处理/root/facedetect 目录中的每个图像而不是选择特定图像

java - 有库支持 Guava 表转 csv 格式吗?

python - 从 CSV 中删除新行\n 读取

python - pandas to_sql 给出 unicode 解码错误

python - 如何像 Python 中的原始字符串一样处理返回/存储的字符串?

python - 为什么函数执行后变量仍然可用?