python - 当我尝试对 pandas 数据框中的多列求和时,为什么会收到错误消息?

标签 python pandas dataframe

df=pd.read_excel('Canada.xlsx',sheet_name='Canada by Citizenship',skiprows=range(20),skipfooter=2)

df['Total']=df.iloc[:,'1980':'2013'].sum(axis=1)

这是我收到的错误:

TypeError: cannot do slice indexing on <class 'pandas.core.indexes.base.Index'> with these indexers [1980] of <class 'str'>

我从这个 link 收到了数据集

最佳答案

列是整数。你可以切片:

df.loc[:, range(1980, 2014)].sum(1)
# or
df.iloc[:, df.columns.get_loc(1980):df.columns.get_loc(2013)+1].sum(1)

0      58639
1      15699
2      69439
3          6
4         15
       ...  
190    97146
191        2
192     2985
193     1677
194     8598
Length: 195, dtype: int64

关于python - 当我尝试对 pandas 数据框中的多列求和时,为什么会收到错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57694956/

相关文章:

python - 导入子模块的子模块上的 ModuleNotFoundError

python - 如何在 python pandas 中将两列与 if/else 组合?

python - 如何在 DataFrame 中为每列应用权重因子

python - Pandas 匹配多列并将匹配值作为单个新列获取

python - 为现有值中的新值列创建循环

python - 仅使用 PyZMQ pub/sub 套接字在订阅者中保留最新的多部分消息

python - 从不同目录导入 python 文件时出现 I/O 错误 :Cannot open resource,

python - Pandas 中的 bool 值和缺失值

python - 如何使用列名+文件名格式自动重命名 python Dataframe 的列

python - 将列表和字符串切片为负零