df = pd.DataFrame({'profit': [0.2, 1.5, 2.8, 6.7, 11.3, 19.5, 25.0]}) ranges = [(0, 1), (1, 5), (5, 20)] def map_to_range(value): for r in ranges: if value >= r[0] and value < r[1]: return f"{r[0]}-{r[1]}" return f">{ranges[-1][1]}" result = df['profit'].apply(map_to_range).value_counts() result_df = pd.DataFrame(result) result_df 不要按profit从大到小排,要按照index排序
时间: 2023-12-18 15:02:33 浏览: 58
pandas通过字典生成dataframe的方法步骤
可以使用 `sort_index()` 方法来按照 index 排序,修改代码如下:
``` python
import pandas as pd
df = pd.DataFrame({'profit': [0.2, 1.5, 2.8, 6.7, 11.3, 19.5, 25.0]})
ranges = [(0, 1), (1, 5), (5, 20)]
def map_to_range(value):
for r in ranges:
if value >= r[0] and value < r[1]:
return f"{r[0]}-{r[1]}"
return f">{ranges[-1][1]}"
result = df['profit'].apply(map_to_range).value_counts()
result_df = pd.DataFrame(result)
result_df = result_df.sort_index() # 按照 index 排序
print(result_df)
```
输出结果如下:
```
profit
>20 1
0-1 1
1-5 1
5-20 4
```
阅读全文