gpt4 book ai didi

python - Pandas - 迭代时重复行

转载 作者:太空宇宙 更新时间:2023-11-03 15:26:26 36 4
gpt4 key购买 nike

我试图在数据帧迭代期间创建重复的行。基本上,我有两个 for 循环,其中在第一个循环中,我将值输入 API,在第二个循环中,我从 JSON 输出中提取值。

我想复制当前行并根据列表上的项目数创建 N 行。例如:

Name    Date      Sales     
John 1/1/17 100
Bob 1/2/17 200

items = []
for row in df.sales:
url = 'www.samplewebsite.com/values=xyz/APIKEY=MYAPIKEY'
result = simplejson.load(urllib.urlopen(url))
for i in range(0, len(result['column a'][0]['column b']:
items.append(result['column a'][0]['column b'][i]['item'])

在此特定循环中,创建了两个列表(一个用于 John,另一个用于 Bob):

items = ['Paper','Paper Clips','Pencils']
items = ['Notebook','Stapler','Highlighter','Pen']

期望的输出:

Name    Date      Sales     Item
John 1/1/17 100 Paper
John 1/1/17 100 Paper Clips
John 1/1/17 100 Pencils
Bob 1/2/17 200 Notebook
Bob 1/2/17 200 Stapler
Bob 1/2/17 200 Highlighter
Bob 1/2/17 200 Pen

提前谢谢您!

最佳答案

有几种方法可以做到这一点。在循环内部,提取每个项目后,您可以将一项和一个名称推送到主数据框中。或者,您可以将一堆项目与一个名称一起插入一个 df 中,然后将其附加到每个名称后面的主 df 中。或者您可以收集所有内容,然后将它们附加在最后。

以下是如何将属于一个名称的所有项目放入 df 中,然后将其附加到主 df 中。您必须在循环内执行此操作,每个名称一次:

# set this up before the loop
mainDF = pd.DataFrame( columns=['Name','Items'])

## this gets populated inside the loop
name = 'John'
items = ['Paper','Paper Clips','Pencils']

# inside the loop create a df to hold one name and all the items belonging to that name
df = pd.DataFrame( columns=['Name','Items'])

#populate... do items first then fill in all the name with the one name
df.Items = items
df.Name = name

## then append the above df into the main df
mainDF = mainDF.append(df)

关于python - Pandas - 迭代时重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43103529/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com