pandas按照某一列的倒数8个字符按日期格式排序
时间: 2023-10-26 14:11:55 浏览: 146
假设你有一个名为`df`的pandas DataFrame,其中包含一个名为`date_str`的列,其值为字符串类型。你可以按照以下步骤进行排序:
1. 将`date_str`列转换为日期类型,并将其设置为新的`date`列:
```python
df['date'] = pd.to_datetime(df['date_str'].str[-8:])
```
2. 按照新的`date`列进行排序:
```python
df = df.sort_values('date')
```
完整代码如下:
```python
import pandas as pd
# 创建样例数据
data = {'date_str': ['20220101', '20210201', '20210301', '20210401']}
df = pd.DataFrame(data)
# 将date_str列转换为日期类型并设置为新的date列
df['date'] = pd.to_datetime(df['date_str'].str[-8:])
# 按照新的date列进行排序
df = df.sort_values('date')
print(df)
```
输出结果如下:
```
date_str date
0 20220101 2022-01-01
1 20210201 2021-02-01
2 20210301 2021-03-01
3 20210401 2021-04-01
```
相关问题
pandas中对表内按照某一列的字符串长度对整张表进行排序
可以使用pandas的sort_values函数,并通过参数key指定按字符串长度排序,示例如下:
```
import pandas as pd
# 创建示例数据
data = {'col1': ['abc', 'de', 'fghij', 'kl'], 'col2': [2, 1, 5, 3]}
df = pd.DataFrame(data)
# 按col1的字符串长度排序
df_sorted = df.sort_values(by='col1', key=lambda x: x.str.len())
print(df_sorted)
```
输出:
```
col1 col2
1 de 1
kl 3 2
abc 2 1
fghij 5 5
```
pandas怎么将一列所有的值从日期格式转化成字符串格式,请给出模板
可以使用pandas的strftime()函数将一列所有的值从日期格式转化成字符串格式,模板如下:
```python
import pandas as pd
# 读取数据
df = pd.read_csv('data.csv')
# 将日期列转换成字符串格式
df['日期列'] = df['日期列'].dt.strftime('%Y-%m-%d')
# 输出转换后的结果
print(df.head())
```
其中,`%Y`表示年份,`%m`表示月份,`%d`表示日期。可以根据需要自行调整。
阅读全文