我有一个pandas数据帧df
,有4列。例如,这里有一个玩具的例子:
foo1 foo2 foo3 foo4
egg cheese 2 1
apple pear 1 3
french spanish 10 1
列是foo1、foo2、foo3和foo4
我想交换foo1列和foo2列,也可以在foo3<;foo4时交换foo3和foo4列。所以结果是:
^{pr2}$
我可以找到需要与df[df['foo3'] < df['foo4']]
交换的行,但是如何才能有效地进行交换呢。我的数据帧很大。在
Tags:
您可以使用
pandas.Series.where
函数根据以下条件构造新的数据帧:可以找到带有
df[df['foo3'] < df['foo4']]
的行,但是如果改用布尔级数,则可以轻松实现目标:注意,您需要在RHS的末尾使用
.values
,以防止Pandas在列名上对齐,这将破坏其用途。在相关问题 更多 >
编程相关推荐