python - 如何获取数据框的列总和

标签 python pandas

我有一个 Excel 文件,其中列名称的标题为数字。我需要根据年龄将 Excel 分为两侧,即“18 岁以下”和“18 岁以上”,因此我也尝试总结年龄并创建一个新列“18 岁以下”。 我尝试这样做,但由于该列标有数字;

df['under 14'] = df['Under 10'] + df['10-12'] + df['13-14'] + df['15']

它给出了一个错误,但如果我将列名写为“十五”,它就会给出总数。我怎样才能像这样总结并保持列名为15?

最佳答案

问题不在 pandas 上,而是在 Excel 上。

我相信您的列名称是 15 作为数字。所以 df[15] 可能会起作用。请检查。 Pandas 可以区分 '15' 作为字符串与 15 作为数字。您可以通过 df.columns 检查数据框的列名称,并且很容易看出。但是,如果您使用 Excel 并输入 15,Excel 将尝试智能地将其存储为数字而不是字符串。所以这就是您出现错误的原因。

解决方案:

  1. 在 Excel 中,将数字显式存储为字符串;或
  2. 只需在 pandas 中使用 df[15] 即可;或
  3. 在执行任何操作之前,请尝试规范化列名称,例如

    df.columns = [str(x) for x in df.columns]
    

关于python - 如何获取数据框的列总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55714059/

相关文章:

python - 如何将多维列变成单值向量以用于sklearn pandas中的训练数据

python - TsTables : AttributeError: module 'pandas.tseries' has no attribute 'index'

python - 在 pandas 数据帧列中过滤和应用算术表达式

python - Pyinstaller exe文件不接受任何输入

python - 正则表达式捕获不同类型的模式

python - Hbase超时错误不断出现

python - C++(LAPACK、sgels)和Python(Numpy、lstsq)结果的区别

python - pandas dataframe read_csv,指定列并将整行保留为字符串

python - BaseOperator.xcom_pull 中的上下文参数是什么

python - 更改数据帧的值(列表中索引除外)