【问题标题】:take the year from date type in a pandas dataframe column [duplicate]从熊猫数据框列中的日期类型中获取年份[重复]
【发布时间】:2017-09-02 13:59:53
【问题描述】:

我在熊猫数据框中有如下年份数据:

0     06/09/1937 
1     22/11/1972

我只想提取年份数据:

0     1937 
1     1972

我的代码:

features["year"] = df["birth_date"].str.split('/',2)
features["year"] = features["year"][:2]

我得到一个错误:

ValueError: Can only tuple-index with a MultiIndex

然后我尝试了

features["year"] = [x[2] for x in features["year"]]

TypeError: 'float' 对象不可下标

我使用 Python 3。 你能告诉我这两个错误的原因以及如何纠正它们吗? 提前致谢。

【问题讨论】:

  • 使用pd.to_datetime将dtype转换为datetime然后你就可以使用链接的答案,就这么简单
  • 嗨,链接的答案对我来说很好。顺便说一句,你能用一些语言解释一下我的问题中的这两个错误是如何产生的吗?@EdChum
  • 这个features["year"][:2] 是无效语法,它认为您正在尝试索引多索引,这就是它引发错误的原因,另一个问题可能是因为您缺少值NaN 所以你不能下标这个
  • 谢谢 EdChum,你能给我一个元组索引和多索引的例子吗@EdChum?
  • 请阅读docs所以不是用户论坛

标签: python-3.x pandas numpy multidimensional-array dataframe


【解决方案1】:

你需要:

features["year"] = df["birth_date"].str.split('/',2)
features["year"] = features["year"].str[:2]

【讨论】:

  • 感谢您的快速回复。但是,我使用您的解决方案在年份数据中得到了 NaN。
  • 没问题,尝试重复解决方案,如果不起作用,请告诉我。
猜你喜欢
  • 2017-06-14
  • 2022-11-27
  • 1970-01-01
  • 2022-11-16
  • 1970-01-01
  • 2018-02-23
  • 2021-10-12
  • 1970-01-01
  • 2019-04-18
相关资源
最近更新 更多