【问题标题】:Python pandas: Operation on a column - Error: must be str not intPython pandas:对列进行操作 - 错误:必须是 str 而不是 int
【发布时间】:2018-03-15 13:38:27
【问题描述】:

我只是想将 1 到 df 中“day”列中的所有值:

df
  day
1  1
2  2
3  3
0  0

我需要:

df
  day
0  1
1  2
2  3
3  4

我试过了:

df['day']=df['day'].apply(lambda x: x + 1)

df['day']+=1

两者都导致错误:TypeError: must be str, not int

【问题讨论】:

  • 不是ERROR: TypeError: must be int, not str ?
  • df['day']=df['day'].astype(int) + 1 有效吗?
  • 试试这个:df['day']=df['day'].astype(int).apply(lambda x: x + 1)
  • @jezrael 该死的,和以往一样快。 : D
  • 看起来数据框包含1字符串,而不是整数。

标签: python pandas dataframe types error-handling


【解决方案1】:

似乎错误是:

错误:TypeError:必须是 int,而不是 str

以及解决方案:

df['day']=df['day'].astype(int) + 1

【讨论】:

  • 谢谢@jezrael,这项工作!奇怪的是,当我在做:type(df.iloc[1].day) 它告诉我:numpy.int64
  • 我认为问题是混合数据 - 一些数据是 int 和一些字符串。检查使用print (df['day'].apply(type))
  • 不客气!我是古玩,不是错字吗?是TypeError: must be str, not int
猜你喜欢
  • 1970-01-01
  • 2018-04-26
  • 1970-01-01
  • 2022-11-21
  • 2017-12-08
  • 2018-03-11
  • 1970-01-01
  • 2015-05-03
  • 1970-01-01
相关资源
最近更新 更多