如何用pd.to_datetime将df[‘year’]和df[‘month’]合成df[‘date’]
时间: 2024-10-25 12:07:05 浏览: 36
在pandas库中,你可以使用`pd.to_datetime()`函数将DataFrame中的'year'列和'month'列组合成'date'列。这通常结合`pd.Series`的`astype()`方法先将单列转换为日期格式,然后利用`concat`或`pd.DataFrame`的`join`方法连接。以下是具体的步骤:
```python
import pandas as pd
# 假设 df 是你的 DataFrame,其中 'year' 和 'month' 是你想要转换的列名
df['year'] = pd.to_numeric(df['year']) # 将字符串年份转为数值
df['month'] = pd.to_numeric(df['month'])
# 将单独的年月转换为 datetime64 类型
dates = pd.to_datetime(df[['year', 'month']], format='%Y%m') # '%Y%m' 是指四位数的年份和两位数的月份格式
# 如果原 DataFrame 中有其他日期相关的列,如'day',则可以加上:
if 'day' in df.columns:
dates = pd.to_datetime(df[['year', 'month', 'day']], format='%Y%m%d')
# 然后将新生成的 Series 或 DataFrame 与原始 DataFrame 进行合并
df['date'] = dates
# 如果你是想直接在原地修改数据,可以这样做:
# df.loc[:, ['date']] = pd.to_datetime(df[['year', 'month']], format='%Y%m')
```
阅读全文