在处理业务报表时,我们经常会拿到包含时间戳的 Excel 文件,比如用户操作记录、订单生成时间等。直接用 Pandas 读取后,这些时间可能表现为浮点数、文本或者错乱的日期,影响后续统计分析。下面介绍几种可靠的方法,把含时间戳的 Excel 数据正确导入为 Pandas DataFrame。

方法一:读取时指定日期列
如果 Excel 中的时间戳是标准日期时间格式,可以在 read_excel 中用 parse_dates 参数直接解析。
import pandas as pd
# 假设 Excel 中有一列名为 '时间' 是标准 datetime 格式
df = pd.read_excel('data.xlsx', parse_dates=['时间'])
print(df.dtypes)
print(df.head())
方法二:读取后转换字符串时间戳
当 Excel 里的时间是文本,例如 2023-08-01 14:30:00,读取后为 object 类型,需要用 pd.to_datetime 转换。
import pandas as pd
df = pd.read_excel('data.xlsx')
# 将字符串列转为 datetime 类型
df['时间'] = pd.to_datetime(df['时间'], format='%Y-%m-%d %H:%M:%S')
print(df.dtypes)
方法三:处理 Excel 浮点时间戳
Excel 有时把日期存为浮点数(以 1900-01-01 为基准的天数)。可用 origin 参数还原。
import pandas as pd
df = pd.read_excel('data.xlsx')
# Excel 浮点转 datetime,单位天,基准 1899-12-30
df['时间'] = pd.to_datetime(df['时间戳列'], unit='D', origin='1899-12-30')
print(df.head())
常见注意事项
- 确认 Excel 内部格式,避免文本型数字被误读。
- 中文列名读取正常,但建议统一用英文列名方便处理。
- 若含时区信息,用 pd.to_datetime(..., utc=True) 再转换。
小技巧:用 df.info() 快速查看各列类型,能及时发现时间列是否解析成功。
完整示例
import pandas as pd
# 读取并解析
df = pd.read_excel('records.xlsx', parse_dates=['create_time'])
# 若仍有文本时间
if df['update_time'].dtype == 'object':
df['update_time'] = pd.to_datetime(df['update_time'])
# 按小时统计
result = df.resample('H', on='create_time').size()
print(result)
通过上述方式,含时间戳的 Excel 数据就能干净地进入 Pandas DataFrame,为后续分析和建模打好基础。