**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
4天前关闭。
截至4天前,机构群体正在审查是否重新讨论此问题。
Improve this question
给定如下 Dataframe :
df = pd.DataFrame([[11, 1, 1, 1, 1], [12, 2, 2, 2, 2], [12, 3, 3, 3, 3], [14, 4, 4, 4, 4]], columns=['a', 'b', 'c', 'd', 'e'])
a b c d e
0 11 1 1 1 1
1 12 2 2 2 2
2 12 3 3 3 3
3 14 4 4 4 4
我想将列'd'中的值与列a
中包含value == 12
的行进行交换。
最终输出应如下所示:
a b c d e
0 11 1 1 1 1
1 12 2 2 3 2
2 12 3 3 2 3
3 14 4 4 4 4
我如何才能做到这一点?
我试过这些:
df[df["a"] == 12]['d'] = df[df["a"] == 12]['d'].map({2: 3, 3: 2})
df.loc[df.a == 12]["d"].replace({2: 3, 3: 2}, inplace=True)
但是这些并不修改原始 Dataframe ,尽管我们可以在序列df[df["a"] == 12]['d'].map({2: 3, 3: 2})
中看到变化。
1条答案
按热度按时间30byixjq1#
如果你使用
loc
,那么它会改变原来的代码,如下所示。