簡體   English   中英

python pandas dataframe concat和按功能分組

[英]python pandas dataframe concat and group by function

我在Excel中有如下數據

category size1 size2 size3
cat1 10 20 30
cat2 20 10 15
cat3 30 20 10

我想要兩個報告/ Excel輸出如下

#1)   
Category-sizetype-value
cat1 size1 10
cat1 size2 20
cat1 size3 30
cat2 size1 20

...

#2)
Category-size-value-value counts(i.e how many time specific size value appears)
cat1 size1 10 3 times
cat1 size2 20 2 times
cat1 size3 30 1 time
cat2 size1 20 4 times

...到目前為止,我已經編寫了代碼,請欣賞一些指針,為什么pd.concat在這里不起作用? 而且不能

import pandas as pd
path_to_file = 'C:\Users\Niru\Desktop\cat-sizes.xlsx'
xl = pd.ExcelFile(path_to_file)
print(xl.sheet_names)
df = xl.parse('Sheet1')
#print(df.head())
print(df.columns)
frames = []
for i in df.columns:
    dfd = "df.loc[:,['Category','" +i+"']]"
    frames.append(dfd)
print(pd.concat(frames))

您的示例數據和輸出使我有些困惑,但是我想這就是您想要的。

#Q1:

df1=pd.melt(df, id_vars=['category'], value_vars=['size1','size2','size3'])


Out[66]: 
  category variable  value
0     cat1    size1     10
1     cat2    size1     20
2     cat3    size1     30
3     cat1    size2     20
4     cat2    size2     10
5     cat3    size2     20
6     cat1    size3     30
7     cat2    size3     15
8     cat3    size3     10

#Q2:

df1['counts']=df1.groupby(['variable','value']).transform('count')

Out[69]: 
  category variable  value  counts
0     cat1    size1     10       1
1     cat2    size1     20       1
2     cat3    size1     30       1
3     cat1    size2     20       2
4     cat2    size2     10       1
5     cat3    size2     20       2
6     cat1    size3     30       1
7     cat2    size3     15       1
8     cat3    size3     10       1

或第二季度

  df1['counts']=df1.groupby(['variable']).transform('count')

Out[71]: 
  category variable  value  counts
0     cat1    size1     10       3
1     cat2    size1     20       3
2     cat3    size1     30       3
3     cat1    size2     20       3
4     cat2    size2     10       3
5     cat3    size2     20       3
6     cat1    size3     30       3
7     cat2    size3     15       3
8     cat3    size3     10       3

暫無
暫無

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

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