为什么使用pandas将excel中的20221220转换成1970-01-01 00:00:00.020221220
时间: 2024-03-17 18:39:58 浏览: 180
Python库 | pandas-charm-0.3.0.tar.gz
在 Pandas 中,日期时间类型的数据是以 Unix 时间戳(Unix timestamp)的形式存储的。Unix 时间戳是从 1970 年 1 月 1 日 00:00:00 UTC 开始的秒数,它是一个整数(或浮点数),可以精确表示从某个时间点到现在的时间差。因此,当你使用 Pandas 的 `to_datetime()` 函数将文本数据转换为日期时间类型时,Pandas 会将这个日期时间解释为 Unix 时间戳,然后将其转换为日期时间类型。
在你的例子中,文本数据 "20221220" 被解释为 Unix 时间戳 1639958400,这个时间戳表示从 1970 年 1 月 1 日 00:00:00 UTC 开始到 2022 年 12 月 20 日 00:00:00 UTC 的时间差。因此,当你使用 Pandas 将其转换为日期时间类型时,得到的结果是 "1970-01-01 00:00:00.020221220",其中 ".020221220" 表示从 Unix 时间戳开始到指定时间点的纳秒数。
如果你想要得到 "2022-12-20 00:00:00" 这样的日期时间格式,可以使用 Pandas 的 `strftime()` 函数将日期时间格式化为指定的字符串格式。例如:
```python
import pandas as pd
# 创建一个包含文本数据的 DataFrame
df = pd.DataFrame({'date': ['20221220']})
# 将文本数据转换为日期时间类型
df['date'] = pd.to_datetime(df['date'], format='%Y%m%d')
# 将日期时间格式化为指定的字符串格式
df['date_str'] = df['date'].dt.strftime('%Y-%m-%d %H:%M:%S')
# 输出结果
print(df['date_str'])
```
这样就可以得到一个格式为 "2022-12-20 00:00:00" 的字符串了。
阅读全文