a = pd.DataFrame([[1,2], [3,4]], columns=[0,1])
b = pd.DataFrame([[5,6], [6,7]], columns=[1,0])

a[[0, 1]] = b
print(a)


导致

   0  1
0  5  6
1  6  7


它不应该将a替换为b中的同一列,从而导致:

   0  1
0  6  5
1  7  6


这有点令人困惑

最佳答案

DataFrame.loc:用于选择所有行,将list用作列名称:

a.loc[:, [0, 1]] = b
print(a)
   0  1
0  6  5
1  7  6


要么:

cols = [0,1]
a[cols] = b[cols]
print(a)
   0  1
0  6  5
1  7  6

关于python - 使用方括号的数据框设置值,不遵循传递的数据框的顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57142690/

10-12 01:06