我有一个包含所有字符变量的数据帧(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。这具有明显的价值:
.
,1
和2
。我希望计算这些值并将其添加到空数据集的底部...但我希望列名称显示在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在这里。如果以最恐怖的方式做到这一点,可以从专业人士那里得到一些建议。