我想在excel列中提取1的总和,并将它们放入列表中:
df = pd.read_excel(r'filelocation')
t = df.col.value_counts().loc[1]
x = []
for i in t:
x.append(i)
print (x)
代码的第一部分工作正常,我可以打印t的结果,但是当我尝试将值放入列表时,我得到“ numpy.int64对象不可迭代”。
这不是很重要,但是我也想通过能够计算2的3的数量,等等,并将它们放在同一列表中,来使模块更加模块化。我是否正确使用列表?我应该改用字典吗?
答案 0 :(得分:2)
是的,这里的字典更好:
df = pd.DataFrame({
'col': [1,1,2,2,3,3,4,4,4,4,4]
})
print (df)
col
0 1
1 1
2 2
3 2
4 3
5 3
6 4
7 4
8 4
9 4
10 4
d = df.col.value_counts().to_dict()
print (d)
{4: 5, 3: 2, 2: 2, 1: 2}
答案 1 :(得分:1)
不太确定为什么需要将Series
转换为dict
或list
,如果需要的话,我会推荐dict
,来自耶兹的数据
import collections
df = pd.DataFrame({
'col': [1,1,2,2,3,3,4,4,4,4,4]
})
collections.Counter(df.col.values.tolist())
Out[532]: Counter({1: 2, 2: 2, 3: 2, 4: 5})
#dict(collections.Counter(df.col.values.tolist()))