如何在Dataframe中交换特定列值?

时间:2018-05-24 06:04:14

标签: python pandas dataframe

我有一个大型数据框,这是Dataframe的示例部分。 想要交换马斯喀特和上海的价值观。

Object loginResult = CompletableFuture.supplyAsync(() -> somemethodForLogin())
        .get(8, TimeUnit.SECONDS);
//Just change the return types accordingly.

输出:

 df =
 City   Score

 Istanbul   6.0749
 2.23607    Muscat
 Prague     4.38576
 1.85958    Shanghai
 Istanbul   6.0749
 Singapore  5.17054

我很困惑,如何在迭代数据框后应用条件,还有其他选择吗?

2 个答案:

答案 0 :(得分:3)

to_numericnotna一起用于布尔掩码,然后按loc进行交换:

m = pd.to_numeric(df['City'], errors='coerce').notna()
#oldier versions of pandas
#m = pd.to_numeric(df['City'], errors='coerce').notnull()
df.loc[m,['City','Score']] = df.loc[m,['Score','City']].values

print (df)
        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

答案 1 :(得分:2)

您可以使用:

my-cntnr:12