构建一个3*5的dataframe,并计算每一个元素的列排名
时间: 2024-04-29 08:24:11 浏览: 105
以下是一个构建3*5的DataFrame,并计算每个元素的列排名的示例代码:
```python
import pandas as pd
# 构建DataFrame
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9],
'D': [10, 11, 12],
'E': [13, 14, 15]
})
# 计算每个元素的列排名
rank_df = df.rank(axis=0)
# 打印输出结果
print(df)
print(rank_df)
```
输出结果为:
```
A B C D E
0 1 4 7 10 13
1 2 5 8 11 14
2 3 6 9 12 15
A B C D E
0 1.0 1.0 1.0 1.0 1.0
1 2.0 2.0 2.0 2.0 2.0
2 3.0 3.0 3.0 3.0 3.0
```
在上面的代码中,我们首先使用字典创建了一个3*5的DataFrame。然后,我们使用`rank()`方法计算每个元素的列排名,并将结果存储在一个新的DataFrame中。最后,我们打印输出原始DataFrame和排名DataFrame的结果。
相关问题
构建一个4*5的dataframe,当中元素是-10至10的随机数字,并计算每一个元素的列排名
import pandas as pd
import numpy as np
# 构建4*5的dataframe
df = pd.DataFrame(np.random.randint(-10, 11, size=(4, 5)), columns=list('ABCDE'))
# 计算每一个元素的列排名
df_rank = df.rank(axis=0)
print(df)
print(df_rank)
构建1个3*5的dataframe,元素均为-10至10的随机数,输出这个dataframe,然后当元素大于等于0,则计算列顺序排名;当元素小于0,则计算其列逆序排名
```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
```
阅读全文