year month iday 0 1981 1 7 1 1981 2 1 2 1981 3 9 3 1981 4 7如何将year和month数据合并为date数据
时间: 2024-10-26 08:03:51 浏览: 25
为了将 'year' 和 'month' 列合并为 'date' 数据,你可以使用pandas的`to_datetime`函数,并指定日期格式。假设 'iday' 是代表日的数据,这里是一个例子:
```python
import pandas as pd
data = {'year': [1981, 1981, 1981, 1981], 'month': [1, 2, 3, 4], 'iday': [7, 1, 9, 7]}
df = pd.DataFrame(data)
# 创建一个格式字符串,表示年、月和日的顺序
format_string = "%Y%m%d"
# 合并 year 和 month 到 date
df['date'] = pd.to_datetime(df[['year', 'month']], errors='coerce', format=format_string).dt.strftime(format_string)
# 如果有的话,处理可能出现的错误(如非数字或无效日期)
df['date'].replace(pd.NaT, '', inplace=True) # 删除空值或NaT
df['date'] = pd.to_datetime(df['date'], format=format_string)
# 最终结果应该保存在 'date' 列中
print(df)
```
这个过程首先尝试将 'year' 和 'month' 合并成日期,如果遇到错误(比如 'iday' 列不是整数),会设置为 `NaT` (Not a Time)。然后清理这些 `NaT` 并再次转换为日期。
阅读全文