簡體   English   中英

如何將python變量組合成單行數據幀?

[英]How to combine python variables into single row of dataframe?

我有一個空的數據框:

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+  

暫無
暫無

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

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