首先,这是我正在使用的完整.csv文件:https://github.com/epurpur/UVA-Big-Deal/blob/master/JournalsPerProvider.csv
我正在使用pandas与.csv一起工作,正在对一列中的值求和,然后将其与另一列中的值分组。这是我正在做的简短代码示例。这段代码有效,我得到了预期的结果:
test_data = {"Name": ['Team1', 'Team2', 'Team1', 'Team2', 'Team3'],
"Points": [1, 2, 11, 2, 5]}
df = pd.DataFrame(test_data)
grouped = df.groupby(['Name'])['Points'].sum()
print(grouped)
这是正确的结果:
Name
Team1 12
Team2 4
Team3 5
当我处理真实数据时,这是我的代码:
data = pd.read_csv('JournalsPerProvider.csv', skiprows=8)
sums_by_field = data.groupby(['Field'])['Downloads JR5 2017 in 2017'].sum()
print(sums_by_field)
我了解尝试将有冲突的数据类型(例如int)添加到str时会生成此错误。但是我不知道为什么,或者如何解决。 'Downloads JR5 2017 in 2017'
列中我的数据集中的所有数据都是整数。那么,为什么不能基于'Field'
列中的值将它们加在一起?
我想要的结果如下:
Field
Physics & Astronomy 1000 #These are made-up numbers
Chemistry 700
Clinical Medicine 450