将由值选择的行替换为由数据帧中的值选择的另一行

这是我的代码:


import pandas as pd

import numpy

from quilt.data.bussiere import test

ar = numpy.array([[1.1, 2, 3.3, 4], [2.7, 10, 5.4, 7], [5.3, 9, 1.5, 15]])

df = pd.DataFrame(ar, index = ['a1', 'a2', 'a3'], columns = ['A', 'B', 'C', 'D'])

df.loc[df['A'] == 5.3] = df.loc[df['A'] == 2.7] 

df

结果是一行 NaN :


     A        B      C       D

a1  1.1     2.0     3.3     4.0

a2  2.7     10.0    5.4     7.0

a3  NaN     NaN     NaN     NaN

如何正确更换?


慕容森
浏览 136回答 1
1回答

HUX布斯

pandasdf.loc[df['A'] == 5.3]和df.loc[df['A'] == 2.7]are 都对索引敏感pandas object,因此index在您分配时会考虑到这一点,因为其中一个是索引是 a2,另一个是 a3,这就是您收到的原因NaNdf.loc[df['A'] == 5.3] = df.loc[df['A'] == 2.7] .values # using value here,without the index match assigndfOut[137]:       A     B    C    Da1  1.1   2.0  3.3  4.0a2  2.7  10.0  5.4  7.0a3  2.7  10.0  5.4  7.0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python