[英]In a pandas dataframe, how do you add a value to the end of each row in iterrows?
[英]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.