我对系列的排名感到困惑。我知道排名是从系列中的最高值到最低值计算的。如果两个数字相等,则 pandas 计算数字的平均值。
在此示例中,最高值为 7。为什么我们对数字 7 的排名为 5.5,对数字 4 的排名为 1.5?
S1 = pd.Series([7,6,7,5,4,4])
S1.rank()
Output:
0 5.5
1 4.0
2 5.5
3 3.0
4 1.5
5 1.5
dtype: float64
Run Code Online (Sandbox Code Playgroud) 我有 2 个数据框,如下所示:
在每个数据帧中,值列中都有 1-2 的模式。(这些值对我的问题并不重要,只是为了演示模式)
df1 = {'idx': [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'values': [20, 1000, 10001, 21, 1000, 1002, 22, 1003, 1007,23]}
df2 = {'idx': [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'values': [1000, 21, 22, 1000, 22, 23, 1000, 20, 21, 1000]}
Run Code Online (Sandbox Code Playgroud)
我需要在两个数据帧之间交换行,以便结果是:
df_expected1 = {'idx': [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'values': [20, 21, 22, 21, 22, 23, 22, 20, 21,23]} …Run Code Online (Sandbox Code Playgroud) 我有一个 Pandas 数据框,如下所示:
import pandas as pd
df = pd.DataFrame({
'city': ['New York','New York','New York','Los Angeles','Los Angeles','Houston','Houston','Houston'],
'airport': ['LGA', 'EWR', 'JFK', 'LAX', 'BUR', 'IAH', 'HOU', 'EFD'],
'distance': [38, 50, 32, 8, 50, 90, 78, 120]
}
df
city airport distance
0 New York LGA 38
1 New York EWR 50
2 New York JFK 32
3 Los Angeles LAX 8
4 Los Angeles BUR 50
5 Houston IAH 90
6 Houston HOU 78
7 Houston EFD 120
Run Code Online (Sandbox Code Playgroud)
我想根据以下逻辑输出一个单独的数据框: