拉出excel值并放在列表中

时间:2018-10-01 13:54:15

标签: python excel pandas

我想在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的数量,等等,并将它们放在同一列表中,来使模块更加模块化。我是否正确使用列表?我应该改用字典吗?

2 个答案:

答案 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转换为dictlist,如果需要的话,我会推荐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()))