dataframe如何把一列yyyy-mm-dd的日期格式数据转化为yyyyddmm的字符串格式
124浏览 · 2024-04-15 19:31:24
要将 DataFrame 中的日期列从 "yyyy-mm-dd" 格式转换为 "yyyymmdd" [字符串](https://geek.csdn.net/educolumn/ba94496e6cfa8630df5d047358ad9719?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)格式,可以使用 pandas 库中的 `to_datetime()` 和 `strftime()` 方法。
以下是一种实现的方法:
```python
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({'date': ['2022-01-01', '2022-02-01', '2022-03-01']})
# 将日期列转换为 datetime 类型
df['date'] = pd.to_datetime(df['date'])
# 将日期列转换为指定[字符串](https://geek.csdn.net/educolumn/ba94496e6cfa8630df5d047358ad9719?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)格式
df['date'] = df['date'].dt.strftime('%Y%d%m')
print(df)
运行上述代码,将会输出如下结果:
0 20220101
1 20220102
2 20220103
在上面的代码中,我们首先使用 `pd.to_datetime()` 方法将日期列转换为 pandas 的 datetime 类型。然后,我们使用 `.dt.strftime()` 方法将日期列转换为指定的[字符串](https://geek.csdn.net/educolumn/ba94496e6cfa8630df5d047358ad9719?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)格式。在这里,`'%Y%d%m'` 表示年份(4 位数)+ 日份(2 位数)+ 月份(2 位数)的格式。
这样,DataFrame 的日期列就被转换为了 "yyyymmdd" 的[字符串](https://geek.csdn.net/educolumn/ba94496e6cfa8630df5d047358ad9719?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)格式。
希望这个解答对你有帮助。如有任何其他问题,请随时[提问](https://geek.csdn.net/edu/300981ef51993cfd737d329c71ba77f9?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)。