【发布时间】:2018-11-21 04:02:02
【问题描述】:
例如,我正在尝试将包含格式为 YYYYMMDD 的日期的字段“日期”分割成 3 个单独的字段(“年”、“月”、“日”)。
我有一种方法可以一次为每个值分配一个值,但我认为有一种更有效的方法可以产生所需的结果。
目前的解决方案:
df['year'] = df['date'].astype(str).apply(lambda x: x[:4])
df['month'] = df['date'].astype(str).apply(lambda x: x[4:6])
df['day'] = df['date'].astype(str).apply(lambda x: x[6:8])
以下是我尝试简化代码的一个示例:
df['year'], df['month'], df['day'] = df['date'].astype(str).apply(lambda x: [x[:4], x[4:6], x[6:8]])
【问题讨论】:
-
谢谢大家!所有解决方案都运行良好。我选择了 MaxU 的答案,因为它可以应用于任何固定宽度的字符串。
标签: python python-3.x pandas apply