如何交换 pandas 中的两条线(举例)


您可以使用以下自定义函数来交换 pandas DataFrame 中两行的位置:

 def swap_rows (df, row1, row2):
    df. iloc [row1], df. iloc [row2] = df. iloc [row2]. copy (), df. iloc [row1]. copy ()
    return df

此函数将交换 DataFrame 中row1row2索引位置中的行位置。

下面的例子展示了如何在实际中使用这个功能。

示例:交换 Pandas 中的两行

假设我们有以下 pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Nets', 'Kings', 'Cavs', 'Heat', 'Magic'],
                   ' points ': [12, 15, 22, 29, 24, 22],
                   ' assists ': [4, 5, 10, 8, 7, 10]})

#view DataFrame
print (df)

    team points assists
0 Mavs 12 4
1 Nets 15 5
2Kings 22 10
3 Cavs 29 8
4 Heat 24 7
5 Magic 22 10

我们可以定义一个swap_rows()函数来交换 DataFrame 中索引位置 0 和 4 处的行:

 #define function to swap rows
def swap_rows (df, row1, row2):
    df. iloc [row1], df. iloc [row2] = df. iloc [row2]. copy (), df. iloc [row1]. copy ()
    return df

#swap rows in index positions 0 and 4
df = swap_rows(df, 0 , 4 )

#view updated DataFrame
print (df)

    team points assists
0 Heat 24 7
1 Nets 15 5
2Kings 22 10
3 Cavs 29 8
4 Mavs 12 4
5 Magic 22 10

请注意,索引位置 0 和 4 处的行已交换,而其他所有行仍保持在同一位置。

注意:在swap_rows()函数中,我们使用.iloc函数根据索引位置从 DataFrame 中选择行。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

Pandas:如何计算列中特定值的出现次数
Pandas:获取列与值匹配的行的索引
Pandas:如何计算DataFrame中的缺失值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注