我有一个包含标题的dataframe,他有两列,一列是‘净利润’,他的数据类似:110万,120亿;一列是‘总资产’,他的数据类似:110亿,120万。两列数据中的单位不统一,请问如何依据总资产列进行降序排序。
时间: 2024-05-09 21:21:07 浏览: 114
Pandas实现一列数据分隔为两列
可以先将‘净利润’列中的数据单位统一化,例如将所有的‘亿’转换为‘万’,将所有的‘万’保持不变。然后将‘净利润’列中的数据转换为数值型,再将‘总资产’列中的数据转换为数值型。最后按照‘总资产’列进行降序排序即可。
以下是示例代码:
```python
import pandas as pd
# 创建包含标题的dataframe
df = pd.DataFrame({
'净利润': ['110万', '120亿', '80万', '90亿'],
'总资产': ['110亿', '120万', '90亿', '80万']
})
# 将‘净利润’列中的数据单位统一化为‘万’
df['净利润'] = df['净利润'].apply(lambda x: int(x[:-1]) * 10000 if '亿' in x else int(x[:-1]))
# 将‘净利润’列中的数据转换为数值型
df['净利润'] = pd.to_numeric(df['净利润'])
# 将‘总资产’列中的数据转换为数值型
df['总资产'] = df['总资产'].apply(lambda x: int(x[:-1]) * 10000 if '亿' in x else int(x[:-1]))
df['总资产'] = pd.to_numeric(df['总资产'])
# 按照‘总资产’列进行降序排序
df = df.sort_values(by='总资产', ascending=False)
print(df)
```
输出结果为:
```
净利润 总资产
1 12000000 12000000000
2 80000 9000000000
0 110000 1100000000
3 9000000 80000000
```
阅读全文