你是不是测试有问题 `df2.loc[df2['A'] == 'A1', ('B', 'C', 'D')] = df1.loc[df1['A'] == 'A1', ('B', 'C', 'D')]` 不加 **values** 也是一样的情况。 import pandas as pd data1 = { 'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3'] } data2 = { 'A': ['A1', 'A5', 'A6', 'A7'], 'B': ['B4', 'B5', 'B6', 'B7'], 'C': ['C4', 'C5', 'C6', 'C7'], 'D': ['D4', 'D5', None, 'D7'] } df1 = pd.DataFrame(data1) df2 = pd.DataFrame(data2) print(df1) print(df2) df2.loc[df2['A'] == 'A1', ('B', 'C', 'D')] = df1.loc[df1['A'] == 'A1', ('B', 'C', 'D')] print(df2) # df2.loc[df2['A'] == 'A1', ('B', 'C', 'D')] = df2.loc[df2['A'] == 'A5', ('B', 'C', 'D')] # print(df2)