我有以下数据帧:
VALUE COUNT RECL_2007 RECL_2008 RECL_2009 A_A A_B A_C B_A B_B \
0 189 149.5872 503 503 500 0 0 0 0 0
1 209 1939.6160 503 503 503 0 0 0 0 0
2 499 617.4784 503 500 503 0 0 0 0 0
3 585 73.0688 503 503 503 0 0 0 0 0
4 611 133.9072 503 500 503 0 0 0 0 0
5 645 278.7904 503 503 503 0 0 0 0 0
6 659 138.2976 500 503 503 0 0 0 0 0
7 719 769.5744 503 503 502 0 0 0 0 0
B_C C_A C_B C_C
0 0 0 0 0
1 0 0 0 0
2 0 0 0 0
3 0 0 0 0
4 0 0 0 0
5 0 0 0 0
6 0 0 0 0
7 0 0 0 0
另外,中的值专栏:2007年10月,2008年和2009年分别对应变量A、B和C,如下所示:
^{pr2}$我想使用COUNT列中的值填充A_A…C峎C列,这样RECL乩2007值给出列名的第一部分,RECL乩2009给出列名的第二部分。在
也就是说,如果RECL_2007==503和RECL_2009==500,则该列为C_A,其值应更新为该行的COUNT列中的值。在
目前我正在使用iterrows迭代pandas数据帧:
for index, row in df.iterrows():
init = OPP_LU[row[name_init]] # Get first part of column name
finl = OPP_LU[row[name_finl]] # Get second part of column name
col_name = init+'_'+finl
df.loc[index,col_name] = row['COUNT']
这很慢,但我不知道如何使用apply将其转换为某些内容。有什么提示吗?在
有两种方法可以做到这一点。在
apply
函数,但您需要在这里做额外的工作(只是为了简化工作)。在帮助你建立命名的词典
命名函数
^{pr2}$然后,检查项目并复制名称相似的count item。在
另一种更简单的解决方案是过滤现有的数据,然后复制count项
代码看起来像,这只是一个简单的例子,你需要在其他场景下工作。在
输出:
相关问题 更多 >
编程相关推荐