在pandas管道中,我知道的最佳方法是按行创建一个新列,假设有一个数据框 df,则可以像下面这样:
```python df['new_column'] = df.apply(lambda row: some_function(row), axis=1) ```(df
. (...)
.assign(new_col = lambda df_: df_.apply(lambda row: my_function(row), axis=1)
)
assign
需要一个pd.Series
,这个pd.Series
通过apply
逐行构建。
我觉得这种策略太冗长了(在单行代码中有两个lambda函数)。是否有更简单和/或更有效的方法来达到相同的结果?
我正在考虑类似于以下语法:
.assign(new_col = lambda row: my_function(row), axis=1)
谢谢。
.assign(new_col = lambda df_: df_.apply(my_function, axis=1))
是解决这个问题的方案。 - Paul-Darius