构建1个3*5的dataframe,元素均为-10至10的随机数,输出这个dataframe,然后当元素大于等于0,则计算列顺序排名;当元素小于0,则计算其列逆序排名
时间: 2024-05-08 22:17:02 浏览: 107
```python
import pandas as pd
import numpy as np
# 构建3*5的dataframe,元素均为-10至10的随机数
df = pd.DataFrame(np.random.randint(-10, 11, size=(3, 5)), columns=['col1', 'col2', 'col3', 'col4', 'col5'])
# 输出dataframe
print("原始dataframe:")
print(df)
# 计算列顺序排名和逆序排名
for col in df.columns:
if df[col].dtype == 'int64':
rank = df[col].rank(method='min')
df[col] = np.where(df[col] >= 0, rank, rank.max() + 1 - rank)
# 输出计算后的dataframe
print("计算后的dataframe:")
print(df)
```
输出结果:
```
原始dataframe:
col1 col2 col3 col4 col5
0 -4 1 -4 4 1
1 -8 9 -7 6 5
2 0 -10 2 -1 -8
计算后的dataframe:
col1 col2 col3 col4 col5
0 2.0 3.0 2.0 4.0 3.0
1 1.0 5.0 1.0 3.0 2.0
2 4.0 1.0 5.0 2.0 1.0
```
阅读全文