遍历lis

2024-05-15 06:09:42 发布

您现在位置:Python中文网/ 问答频道 /正文

I have a dataframe,delf
     Date        inp  name   
0  2017-08-07  2.3.6  ABC 
1  2017-08-07  2.3.6  ABC      
2  2017-08-08  2.3.6  TAC         
3  2017-08-22  2.5.9  TTT         
4  2017-09-23  0.8.0  TAC         
5  2017-10-09  2.3.6  ABC         
6  2017-10-09  2.3.6  TAC
7  2017-10-09  2.3.6  TAC                  
8  2017-10-23  0.8.0  TAC         
9  2017-11-08  6.2.6  ABC        

then another dataframe,trex
               2.3.6ABC  2.3.6TAC      2.5.9TTT      
August            2         1            0            
September         0         0            0             
October           1         2            0             
November          0         0            1             

another dataframe,dher
              2.3.6ABC  2.3.6TAC       
August            2         1                      
September         0         0                         
October           1         2                        
November          0         0                        

我想得到DELF的'inp'列中的不同值,在本例中是4。然后,TREX和DHER的列数,在这种情况下是3和2。如何存储两个数据帧的列数TREX和DHER,然后在df1中获得TREX和DHER的百分比。应该是这样的:

                 noOfColumn      pct
  TREX                 3         3/4=75                      
  DHER                 2         2/4=50

我试着用这个代码:

df_list = [TREX,DHER]
idx, v = [], []
for i, df in enumerate(df_list, 1):
idx.append('{}'.format())
v.append(len(df.columns))

那么

df = pd.DataFrame(v, index=idx, columns=['noOfColumn'])
df['pct'] = df['noOfColumn'] / DELF.inp.nunique()

没有给我正确的输出


Tags: dataframedfanothertacabcinpidxtrex
1条回答
网友
1楼 · 发布于 2024-05-15 06:09:42

您可以为您的df分配名称

TREX.name='TREX'
DHER.name='DHER'
df_list = [TREX,DHER]
idx, v = [], []
for i, df in enumerate(df_list, 1):
    idx.append(df.name)
    v.append(len(df.columns))
df = pd.DataFrame(v, index=idx, columns=['noOfColumn'])
df['pct'] = df['noOfColumn'] / DELF.inp.nunique()
df
Out[55]: 
      noOfColumn   pct
TREX           3  0.75
DHER           2  0.50

相关问题 更多 >

    热门问题