Pandas在没有赋值的情况下改变数据帧中的行

2024-04-29 02:20:33 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我们有一个Python数据帧:

In[1]: df = pd.DataFrame({'A': [1, 1, 2, 3, 5],
                          'B': [5, 6, 7, 8, 9]})

In[2]: print(df)
    A  B
 0  1  5
 1  1  6
 2  2  7
 3  3  8
 4  5  9

我想更改符合特定条件的行。我知道这可以通过直接指派来完成:

In[3]: df[df.A==1] = pd.DataFrame([{'A': 0, 'B': 5}, 
                                   {'A': 0, 'B': 6}])

In[4]: print(df)
    A  B
 0  0  5
 1  0  6
 2  2  7
 3  3  8
 4  5  9

我的问题是:上述赋值是否有一个等价的解决方案,它将返回行更改后的新数据帧,即无状态解决方案?我正在寻找类似pandas.DataFrame.assign的东西,但它作用于行而不是列。你知道吗


Tags: 数据indataframepandasdf状态解决方案pd