簡體   English   中英

如何使用 Pandas 向 Dataframe 的每一行添加值?

[英]How do you add Values to each row of the Dataframe Using Pandas?

如何將數據添加到 dataframe 的每一行。

from collections import namedtuple
import pandas as pd

People = namedtuple('People',['id','name'])

dictionary = {1: People(1,'Rodger'), 2: People(2,'Betty'), 3: People(1,'Susie')}

keys = list(map(int, dictionary.keys())) # [1, 2, 3]

for k in dictionary:
    df = pd.DataFrame({'id': keys, 'name': dictionary[k].name})

print(df)

它不會將每個名稱添加到與其 id 對應的行中。 它用值“Rodger”填充名稱列的每一行。 為什么是這樣?

[current output]

id:     name:
1       Susie
2       Susie
3       Susie

[desired output]

id:     name:
1       Rodger
2       Betty
3       Susie

出現問題是因為您在每次迭代時都覆蓋了 dataframe:

for k in dictionary:
    df = pd.DataFrame({'id': keys, 'name': dictionary[k].name}) # override using all keys but next name in sequence 

一個解法:

df = pd.DataFrame({'id': keys, 'name': [item.name for item in dictionary.values()]})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM