【问题标题】:TypeError: unsupported operand type(s) for +: 'int' and 'str' - Pandas DataFrame类型错误:+ 不支持的操作数类型:'int' 和 'str' - Pandas DataFrame
【发布时间】:2021-09-16 15:32:49
【问题描述】:
addition add-revised
6 insertions(+) 6
NaN 0
8 insertions(+) 8

从数据框的“addition”列中,我创建了“add-revised”列。


df['add-revised'] = df.addition.str.extract('(\d+)')
df['add-revised'] = df['add-revised'].fillna(0)

当我尝试这样做时


df_new['add-revised'].mean()

它给了我以下错误

TypeError: unsupported operand type(s) for +: 'int' and 'str'

我试图解决这个问题

df_new['add-revised'].to_numeric()

它给了我以下错误

AttributeError: 'Series' object has no attribute 'to_numeric'

【问题讨论】:

  • 请发布一个完全运行的脚本,这样其他人就不必在他们的答案中做这部分。它只是一个导入和创建数据框。
  • 我想你会得到NameError: name 'df_new' is not defined。那个变量是什么?无论如何,to_numeric 是一个函数。你可以做df['add-revised'] = pd.to_numeric(df['add-revised'])。 atype 是一种方法,你也可以使用它。
  • df['add-revised'].astype(int).mean() 也许这行得通。另外,我们看不到任何 df_new,只有 df。

标签: python pandas dataframe


【解决方案1】:

你试过了吗:

df_new['add-revised'] = df_new['add-revised'].astype(int)

它适用于熊猫版本“1.2.0”

【讨论】:

    猜你喜欢
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 2018-02-05
    • 2017-05-27
    • 2013-10-12
    相关资源
    最近更新 更多