我的年月日时分是五个列
时间: 2024-11-30 11:17:49 浏览: 10
微信小程序 -- 年月日时分秒 picker 选择器
如果你的数据集中年、月、日、时和分为五独立的列,比如分别命名为'year', 'month', 'day', 'hour', 'minute',那么要将它们组合成一个日期时间(datetime)列,可以按照以下步骤进行:
1. 首先,确保每个单独的列都是数值型(整数或浮点数),因为`pd.to_datetime`函数期望输入的是日期对应的数值代表,而不是文本。
2. 使用`pd.DataFrame.combine_first`或`pd.concat`函数,将这些单个列合并成一个元组(tuple)表示完整的日期时间,因为通常`pd.to_datetime`需要一个包含年、月、日、小时、分钟的元组。
```python
def combine_date_parts(row):
return (row['year'], row['month'], row['day'], row['hour'], row['minute'])
combined_values = df[['year', 'month', 'day', 'hour', 'minute']].apply(combine_date_parts, axis=1)
combined_series = pd.Series(combined_values)
# 或者使用 concat
date_time_series = pd.concat([df[col] for col in ['year', 'month', 'day', 'hour', 'minute']], axis=1).apply(pd.to_datetime, errors='coerce')
```
3. 最后,调用`pd.to_datetime`将这些元组转换为datetime格式的Series。`errors='coerce'`选项会在无法解析时返回`NaT`(Not a Time)值。
4. 将结果添加回原始DataFrame作为新的一列:
```python
df['datetime'] = date_time_series
```
现在,'datetime'列就包含了所有日期和时间信息,适合进行日期相关的数据分析。
阅读全文