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

2024-07-01 07:33:51 发布

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

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

    A    B
0 user1  value
1 user2  value
2 user3  value
3 user4  value

我有一个列表,有时会有一个或多个用户。在

^{pr2}$

所以我想简单地将列表中的其他用户添加到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

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

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

我的代码运行得很好,直到插入数据为止。在


Tags: and数据用户dataframedf列表newraw
3条回答

可以使用新数据创建新的数据帧,并将其附加到现有数据帧:

new = pd.DataFrame(columns=df.columns)
new['A'] = xList
df = df.append(a, ignore_index=True)

pd.concat也可以:

^{pr2}$

创建新的数据帧并将^{}^{}转换为原始数据帧:

print (df)
    User  Value
0  user1  value
1  user2  value
2  user3  value
3  user4  value

x = ['user5', 'user6']
xList= list(set(x)-set(df['User']))
df = df.append(pd.DataFrame({'User': xList}), ignore_index=True)
#alternative
#df = pd.concat([df, pd.DataFrame({'User': xList})], ignore_index=True)

print (df)
    User  Value
0  user1  value
1  user2  value
2  user3  value
3  user4  value
4  user5    NaN
5  user6    NaN

另一个带有^{}的解决方案:

^{pr2}$

只是另一种方法:

现有数据帧:

>>> df
       A      B
0  user1  value
1  user2  value
2  user3  value
3  user4  value

要添加的新用户列表:

^{pr2}$

解决方案:只需通过pandas.DataFrame.append方法的循环。

for i in x:
    df = df.append({'A': i}, ignore_index=True)

print(df)
       A      B
0  user1  value
1  user2  value
2  user3  value
3  user4  value
4  user5    NaN
5  user6    NaN

相关问题 更多 >

    热门问题