Python 如何交换Dataframe中的特定列值?
我有一个大的数据框,这是数据框的示例部分。 想交换马斯喀特和上海的价值Python 如何交换Dataframe中的特定列值?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个大的数据框,这是数据框的示例部分。 想交换马斯喀特和上海的价值 df = City Score Istanbul 6.0749 2.23607 Muscat Prague 4.38576 1.85958 Shanghai Istanbul 6.0749 Singapore 5.17054 输出: df = City Score Istanbul 6.0749 Muscat 2.23607 Pra
df =
City Score
Istanbul 6.0749
2.23607 Muscat
Prague 4.38576
1.85958 Shanghai
Istanbul 6.0749
Singapore 5.17054
输出:
df =
City Score
Istanbul 6.0749
Muscat 2.23607
Prague 4.38576
Shanghai 1.85958
Istanbul 6.0749
Singapore 5.17054
我很困惑,在遍历数据帧后如何应用条件,还有其他选择吗?您可以使用:
In [39]: mask = pd.to_numeric(df.Score, errors='coerce').isna()
In [40]: s = df.Score.copy()
In [41]: df.Score[mask] = df.City
In [42]: df.City[mask] = s
In [43]: df
Out[43]:
City Score
0 Istanbul 6.0749
1 Muscat 2.23607
2 Prague 4.38576
3 Shanghai 1.85958
4 Istanbul 6.0749
5 Singapore 5.17054
您可以使用:
In [39]: mask = pd.to_numeric(df.Score, errors='coerce').isna()
In [40]: s = df.Score.copy()
In [41]: df.Score[mask] = df.City
In [42]: df.City[mask] = s
In [43]: df
Out[43]:
City Score
0 Istanbul 6.0749
1 Muscat 2.23607
2 Prague 4.38576
3 Shanghai 1.85958
4 Istanbul 6.0749
5 Singapore 5.17054
用于布尔掩码,然后通过以下方式交换:
用于布尔掩码,然后通过以下方式交换:
向上游看一看,看看为什么你的数据是这样进来的,这可能会更好。随着数据集变得越来越大,无论是手动执行还是使用函数i agree@aydow执行,更改值都会变得越来越麻烦。也许你只是对一些重复的分隔符或其他东西有问题。但是,最好证明你的数据是正确的,否则在试图修复数据时,你会冒着丢失数据的风险,不知道是什么原因导致了哪些工件。要点指出……最好向上游看一看,看看为什么你的数据会出现这种情况。随着数据集变得越来越大,无论是手动执行还是使用函数i agree@aydow执行,更改值都会变得越来越麻烦。也许你只是对一些重复的分隔符或其他东西有问题。但是,最好证明你的数据是正确的,否则在试图修复数据时,你会冒着丢失数据的风险,而不知道是什么原因导致了哪些工件。要点指出。。。。。