pandas.DataFrame.assign # 数据框。分配( ** kwargs ) [来源] # 将新列分配给 DataFrame。 返回一个新对象,其中包含除新列之外的所有原始列。重新分配的现有列将被覆盖。 参数: **kwargs字典 {str: callable or Series}列名是关键字。如果这些值是可调用的,则会在 DataFrame 上计算它们并分配给新列。可调用不得更改输入 DataFrame(尽管 pandas 不检查它)。如果值不可调用(例如系列、标量或数组),则仅对它们进行赋值。 返回: 数据框除了所有现有列之外,还包含新列的新 DataFrame。 笔记 assign可以在同一列中分配多个列。 '**kwargs' 中的后续项目可能引用 'df' 中新创建或修改的列;项目按顺序计算并分配到“df”中。 例子 >>> df = pd.DataFrame({'temp_c': [17.0, 25.0]}, ... index=['Portland', 'Berkeley']) >>> df temp_c Portland 17.0 Berkeley 25.0 其中值是可调用的,在df上求值: >>> df.assign(temp_f=lambda x: x.temp_c * 9 / 5 + 32) temp_c temp_f Portland 17.0 62.6 Berkeley 25.0 77.0 或者,可以通过直接引用现有的 Series 或序列来实现相同的行为: >>> df.assign(temp_f=df['temp_c'] * 9 / 5 + 32) temp_c temp_f Portland 17.0 62.6 Berkeley 25.0 77.0 您可以在同一分配中创建多个列,其中一列依赖于同一分配中定义的另一列: >>> df.assign(temp_f=lambda x: x['temp_c'] * 9 / 5 + 32, ... temp_k=lambda x: (x['temp_f'] + 459.67) * 5 / 9) temp_c temp_f temp_k Portland 17.0 62.6 290.15 Berkeley 25.0 77.0 298.15