2015-02-11 54 views
0

我读一个CSV,我想算的CSV多少次,每个条目出现 看起来是这样的:的Python:熊猫创建新的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 

我很好,如果没有办法做到这一点,但我怎么会至少得到每种颜色的总发生?谢谢

+0

你应该接受张贴的答案,也将在答案的左上角是一个空的刻度会是这样的帖子不仍然悬而未决 – EdChum 2015-02-11 09:32:10

回答

2

使用堆栈。

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') 
+0

谢谢!像魅力一样工作! – Johnsonge 2015-02-11 01:44:13