我有一个 Dataframe 和一个字典,其中包含 Dataframe 的一些列和一些值。我想根据字典值更新 Dataframe ,并选择更高的值。
>>> df1
a b c d e f
0 4 2 6 2 8 1
1 3 6 7 7 8 5
2 2 1 1 6 8 7
3 1 2 7 3 3 1
4 1 7 2 6 7 6
5 4 8 8 2 2 1
字典是
compare = {'a':4, 'c':7, 'e':3}
所以我想检查列['a','c','e ']中的值,如果它更大,就用字典中的值替换。
我所尝试的是:
comp = pd.DataFrame(pd.Series(compare).reindex(df1.columns).fillna(0)).T
df1[df1.columns] = df1.apply(lambda x: np.where(x>comp, x, comp)[0] ,axis=1)
例外输出:
>>>df1
a b c d e f
0 4 2 7 2 8 1
1 4 6 7 7 8 5
2 4 1 7 6 8 7
3 4 2 7 3 3 1
4 4 7 7 6 7 6
5 4 8 8 2 3 1
2条答案
按热度按时间aydmsdu91#
得到
sqxo8psd2#
基于
numpy
的另一种可能的解决方案是:输出: