簡體   English   中英

大熊貓將分組數據框添加到另一個數據框作為行

[英]pandas adding grouped data frame to another data frame as row

我得到以下數據框:

category_name             amount
Blades & Razors & Foam     158
Diaper                     486
Empty                      193
Fem Care                  2755
HairCare                  3490
Irrelevant                1458
Laundry                    889
Oral Care                 2921
Others                      69
Personal Cleaning Care    1543
Skin Care                  645

我想將其作為行添加到以下數據框,該數據框具有第一個數據框不存在的其他retailer column

categories_columns = ['retailer'] + self.product_list.category_name.unique().tolist()
categories_df = pd.DataFrame(columns=categories_columns)

如果缺少某些類別,我只想要零值。

有任何想法嗎 ?

使用set_indexcategory_name列移入索引。 然后使用轉置( .T )將category_name移到列索引中:

In [35]: df1
Out[35]: 
   amount cat
0       0   A
1       1   B
2       2   C

In [36]: df1.set_index('cat').T
Out[36]: 
cat     A  B  C
amount  0  1  2

一旦類別名稱(上面的cat )在列索引中,您就可以使用append或`pd.concat append重塑的DataFrame與第二個DataFrame連接起來。

pd.concat使用NaN填充缺失值。 使用fillna(0)NaN替換為0。


import numpy as np
import pandas as pd

df1 = pd.DataFrame({'amount': range(3), 'cat': list('ABC')})
df2 = pd.DataFrame(np.arange(2*4).reshape(2, 4), columns=list('ABCD'))
result = df2.(df1.set_index('cat').T).fillna(0)
print(result)

產量

        A  B  C    D
0       0  1  2  3.0
1       4  5  6  7.0
amount  0  1  2  0.0

只需追加並替換Nan:

pd.DataFrame(columns=products).append(df.T).fillna(0)

暫無
暫無

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

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