python - 如何交换 Dataframe 中的特定列值?

标签 python pandas dataframe

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

 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

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

最佳答案

使用to_numericnotna对于 bool 掩码,然后交换 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

关于python - 如何交换 Dataframe 中的特定列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50502038/

相关文章:

python - 对多行使用正则表达式

python - Pandas/Python 相当于 Stata 的 "levelsof"

python - Pandas 今天的日期和另一个 date_time 列之间的天数差异?

python dask dataframes - 连接 groupby.apply 输出到单个数据帧

python - 如何通过不同的字典扩展 df 作为列?

python - 迭代 Pandas 中的行组

c++ - python 代码到 c++ lib 或 dll

python - Numpy:获取有关添加功能的帮助

python - 如何仅对数据框中的某些行进行 KNN 测试?

python - Sklearn,高斯过程 : XA and XB must have the same number of columns