【发布时间】:2018-07-11 06:44:43
【问题描述】:
我有一个数据框:
df.head()
Index Value
0 1.0,1.0,1.0,1.0
1 1.0,1.0
2 1.0,1.0
3 3.0,3.0,3.0,3.0,3.0,3.0,4.0,4.0
4 4
我想统计Value 列中值的出现次数:
Index Value 1 2 3 4
0 1.0,1.0,1.0,1.0 4 0 0 0
1 1.0,1.0 2 0 0 0
2 1.0,1.0 2 0 0 0
3 3.0,3.0,3.0,3.0,3.0,3.0,4.0,4.0 0 0 6 2
4 4 0 0 0 1
我以前用字符串值做过这个,但我用Counter - 我发现你不能用浮点数?
df_counts = df['Value'].apply(lambda x: pd.Series(Counter(x.split(','))), 1).fillna(0).astype(int)
【问题讨论】:
-
你的花车总是以
.0结尾吗?如果是这样,您可以将.split的结果转换为整数,如果有必要,进一步转换为字符串,那么计数应该可以正常工作。 -
df['Value'].apply(lambda x: pd.Series(Counter(map(float, x.split(',')))), 1).fillna(0).astype(int)工作正常...
标签: python pandas counter series