使用python

时间:2018-04-09 16:12:03

标签: python pandas dataframe transform

我有一个包含所有字符变量的数据帧(base_varlist3)。我想循环遍历这些字符变量中的每一个(这是运算符k)并附加到空数据集,该数据集包含列' Variable' Dist_Val', '值'

In [217]: output_nvd = pd.DataFrame(columns=['Variable','Dist_Val','value'])
     ...: print(output_nvd)
     ...: 
     ...: #for k in range(0,4):
     ...: #for k in range(0,len(varlist3)):    
     ...: k=4
     ...: 
     ...: nvd_var = varlist3[k]
     ...: print('NVD transform variable: ' + nvd_var)
     ...: 
     ...: output_nvd_temp = base_varlist3.groupby(nvd_var)[nvd_var].count()
     ...: 
     ...: output_nvd = output_nvd.append(output_nvd_temp)
     ...: 
     ...: print(output_nvd)
Empty DataFrame
Columns: [Variable, Dist_Val, value]
Index: []
NVD transform variable: WATCHLIST_CATEGORY_CODE
                        Variable Dist_Val value         .       1       2  \
WATCHLIST_CATEGORY_CODE      NaN      NaN   NaN  271671.0  1108.0  2167.0   

                             3  
WATCHLIST_CATEGORY_CODE  621.0  

在上面的例子中,我手动将k改为4,这意味着要转换的变量是WATCHLIST_CATEGORY_CODE。这具有明显的价值: .12。我希望计算这些值并将其添加到空数据集的底部...但我希望列名称显示在Variable下,并且要在Dist_Val下显示转换的不同值, value列中显示的每个不同值的计数。

所以我想要这个:

Variable                     Dist_Val   value         
WATCHLIST_CATEGORY_CODE      .          271671.0
WATCHLIST_CATEGORY_CODE      1          1108.0
WATCHLIST_CATEGORY_CODE      2          2167.0   

我知道我需要一个pd_melt,但我并不完全确定如何去做。我试过了,但我无法弄明白id_vars应该是什么:

output_nvd_temp2=pd.melt(output_nvd_temp, id_vars='Obs_Date', value_vars=varlist4)

哦,如果output_nvd_temp是一个空的数据框,我根本不想要追加它,但我不希望我的代码出错。

道歉,Python noob在这里。如果以最恐怖的方式做到这一点,可以从专业人士那里得到一些建议。

0 个答案:

没有答案