繁体   English   中英

遍历列表错误

[英]iterating through a list error

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。 如何存储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()

没有给我正确的输出

您可以为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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM