如何将 python 变量组合到单行数据帧中



我有一个空的数据帧:

dfObj = pd.DataFrame(columns=['combo', 'item1', 'item2', 'group1', 'group2', 'category1', 'category2', 'title1', 'title2'])

然后我在单独的变量中拥有这些值:

combo = 'A | B|'
item1 = 'A'
item2 = 'B'
group1 = 'phones'
group2 = 'cases'
cat1 = 'smartphones'
cat2 = 'leather cases'
title1 = 'Samsung galaxy S9+'
title2 = 'Casey for S9+'

我想以某种方式获取一个数据帧行,稍后可以将其附加到我的数据帧中。现在我正在经历一个 for 循环并使用 .iloc[] 将值放入特定位置,但是有没有更优化的方法..?

创建变量列表,循环分配给嵌套列表,最后传递给构造函数DataFrame一次:

L = [combo, item1, item2, group1, group2, cat1, cat2, title1, title2]
cols = ['combo', 'item1', 'item2', 'group1', 'group2', 
        'category1', 'category2', 'title1', 'title2']
#simulate loop
out = []
for i in range(2):
    out.append(L)
dfObj = pd.DataFrame(out, columns=cols)
print (dfObj)
    combo item1 item2  group1 group2    category1      category2  
0  A | B|     A     B  phones  cases  smartphones  leather cases   
1  A | B|     A     B  phones  cases  smartphones  leather cases   
               title1         title2  
0  Samsung galaxy S9+  Casey for S9+  
1  Samsung galaxy S9+  Casey for S9+  

另一种解决方案是创建字典:

d = {'combo': combo, 'item1': item1, 'item2': item2, 'group1': group1, 
     'group2': group2, 'category1': cat1, 'category2': cat2, 
     'title1': title1, 'title2': title2}
print (d)
out = []
for i in range(2):
    out.append(d)
dfObj = pd.DataFrame(out)
print (dfObj)
     category1      category2   combo  group1 group2 item1 item2  
0  smartphones  leather cases  A | B|  phones  cases     A     B   
1  smartphones  leather cases  A | B|  phones  cases     A     B   
               title1         title2  
0  Samsung galaxy S9+  Casey for S9+  
1  Samsung galaxy S9+  Casey for S9+  

最新更新