从元组列表向现有数据帧添加值

Abd*_*dus 4 python tuples list dataframe pandas

我有一个包含两个空列的数据框。我有以下元组列表:

l = [('l1', 0.966797), ('l1', 0.998047), ('l2', 0.978516), ('l2', 0.998047), ('l3', 0.972656)]
Run Code Online (Sandbox Code Playgroud)

我想将这些值添加到数据框的两个空列中。我知道的一种方法是创建列表的数据框,如下所示

d = pd.DataFrame(l,columns=['s','p'])
Run Code Online (Sandbox Code Playgroud)

但它会创建一个新的数据帧,我需要将这些值添加到现有的数据帧中。任何建议表示赞赏。

jez*_*ael 6

您可以将 double[]与列名一起使用,join或者concat

df = pd.DataFrame({'column':range(5)})
print (df)
   column
0       0
1       1
2       2
3       3
4       4

l = [('l1', 0.966797), ('l1', 0.998047), 
     ('l2', 0.978516), ('l2', 0.998047), ('l3', 0.972656)]
Run Code Online (Sandbox Code Playgroud)
df[['s','p']] = pd.DataFrame(l)

df = df.join(pd.DataFrame(l,columns=['s','p']))

df = pd.concat([df, pd.DataFrame(l,columns=['s','p'])], axis=1)
Run Code Online (Sandbox Code Playgroud)
print (df)
   column   s         p
0       0  l1  0.966797
1       1  l1  0.998047
2       2  l2  0.978516
3       3  l2  0.998047
4       4  l3  0.972656
Run Code Online (Sandbox Code Playgroud)