如何将列表中的值插入到现有列中

Gis*_*ist 6 python numpy dataframe pandas

我想向现有数据框添加一个或多个值。我的数据框看起来像:

    A    B
0 user1  value
1 user2  value
2 user3  value
3 user4  value
Run Code Online (Sandbox Code Playgroud)

我的列表有时会有 1 个或多个用户。

x = ['user5', 'user6']
Run Code Online (Sandbox Code Playgroud)

因此,我想简单地将列表中的其他用户添加到 A 列。如果列表中只有一个或多个值,则需要这样做,因为这是通过循环运行的。

从列表中添加到 A 列的用户不会为 B 列提供任何值。B 列值将为 Nan

    A    B
0 user1  value
1 user2  value
2 user3  value
3 user4  value
4 user5  nan
5 user6  nan
Run Code Online (Sandbox Code Playgroud)

当我执行下面的代码时,我没有看到数据帧大小增加。

for x,n in zip(u,grps):
    # Filter Dataframe based on X and create new Dataframe
    df=raw.df[raw.df[raw.df.header['User']].isin(x)]
    #Create List of difference between new Dataframe and List X
    xList=(list(set(x)-set(df['User'])))
    # Add xList of Users to df Column
    df.loc[len(df)]=xList
Run Code Online (Sandbox Code Playgroud)

我的代码工作正常,直到插入数据为止。

bus*_*ear 2

您可以使用新数据创建一个新数据框并将其附加到现有数据框:

new = pd.DataFrame(columns=df.columns)
new['A'] = xList
df = df.append(new, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

pd.concat也有效:

df = pd.concat([df, new], ignore_index=True)
Run Code Online (Sandbox Code Playgroud)