Python:Pandas创建包含内容的新csv

时间:2015-02-11 00:20:28

标签: python csv pandas

我正在阅读csv,我正在尝试计算每个条目出现的次数 csv看起来像这样:

     Image#     color1     color2    color3
     1          red        blue      yellow
     2          blue       blue      red
     3          white      red       pink

我想要做的是将它写成一个新的csv,例如:

df = pd.read_csv("colors.csv")
counted = df.groupby(["color1", "color2", "color3"]).size()
df.to_csv("counted.csv")

除了我想要输出

Red    3
Blue   3
Pink   1
Yellow 1
White  1

如果没有办法做到这一点我很好,但我怎么能至少得到每种颜色的总出现次数?感谢

1 个答案:

答案 0 :(得分:2)

使用Stack。

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.stack.html

Get count of values across columns-Pandas DataFrame

import pandas as pd

Dict = {'Image': [1,2,3],
    'color1': ['red','blue','white'],
    'color2': ['blue','blue','red'],
    'color3': ['yellow','red','pink']}

df = pd.DataFrame(Dict)
df.set_index('Image',inplace=True)

Color_Counts = df.stack().value_counts()
Color_Counts.to_csv('Color_Counts.csv')