pandas.DataFrame.update # 数据框。update ( other , join = 'left' , overwrite = True , filter_func = None , error = 'ignore' ) [来源] # 使用另一个 DataFrame 中的非 NA 值进行适当修改。 按索引对齐。没有返回值。 参数: 其他DataFrame,或可强制转换为 DataFrame 的对象应该至少有一个与原始 DataFrame 匹配的索引/列标签。如果传递了 Series,则必须设置其 name 属性,并且该属性将用作列名称以与原始 DataFrame 对齐。 加入{'left'},默认'left'仅实现左连接,保留原始对象的索引和列。 覆盖布尔值,默认 True如何处理重叠键的非 NA 值: True:用其他DataFrame 的值覆盖原始 DataFrame 的值。 False:仅更新原始 DataFrame 中为 NA 的值。 filter_func callable(1d-array) -> bool 1d-array, 可选可以选择替换NA以外的值。对于应更新的值返回 True。 错误{'raise', 'ignore'}, 默认 'ignore'如果“raise”,如果 DataFrame 和其他 数据在同一位置都包含非 NA 数据,则会引发 ValueError 。 返回: 没有任何该方法直接改变调用对象。 加薪: 值错误 当错误=“引发”并且存在重叠的非 NA 数据时。 当错误不是“忽略”或“引发”时 未实现错误 如果join != '左' 也可以看看 dict.update字典的方法类似。 DataFrame.merge用于列对列的操作。 例子 >>> df = pd.DataFrame({'A': [1, 2, 3], ... 'B': [400, 500, 600]}) >>> new_df = pd.DataFrame({'B': [4, 5, 6], ... 'C': [7, 8, 9]}) >>> df.update(new_df) >>> df A B 0 1 4 1 2 5 2 3 6 DataFrame 的长度不会因更新而增加,仅更新匹配索引/列标签处的值。 >>> df = pd.DataFrame({'A': ['a', 'b', 'c'], ... 'B': ['x', 'y', 'z']}) >>> new_df = pd.DataFrame({'B': ['d', 'e', 'f', 'g', 'h', 'i']}) >>> df.update(new_df) >>> df A B 0 a d 1 b e 2 c f >>> df = pd.DataFrame({'A': ['a', 'b', 'c'], ... 'B': ['x', 'y', 'z']}) >>> new_df = pd.DataFrame({'B': ['d', 'f']}, index=[0, 2]) >>> df.update(new_df) >>> df A B 0 a d 1 b y 2 c f 对于Series,必须设置其name属性。 >>> df = pd.DataFrame({'A': ['a', 'b', 'c'], ... 'B': ['x', 'y', 'z']}) >>> new_column = pd.Series(['d', 'e', 'f'], name='B') >>> df.update(new_column) >>> df A B 0 a d 1 b e 2 c f 如果other包含 NaN,则原始数据帧中不会更新相应的值。 >>> df = pd.DataFrame({'A': [1, 2, 3], ... 'B': [400., 500., 600.]}) >>> new_df = pd.DataFrame({'B': [4, np.nan, 6]}) >>> df.update(new_df) >>> df A B 0 1 4.0 1 2 500.0 2 3 6.0