我有一个熊猫数据框和一个列表-
d={'abc':[0,2,4,5,2,2],'bec':[0,5,6,4,0,2],'def':[7,6,0,1,1,2],'rtr':[5,6,7,2,0,3],'rwr':[5,6,7,1,0,5],'xx':[4,5,6,7,8,7]}
X=pd.DataFrame(d)
abc bec def rtr rwr xx
0 0 0 7 5 5 4
1 2 5 6 6 6 5
2 4 6 0 7 7 6
3 5 4 1 2 1 7
4 2 0 1 0 0 8
5 2 2 2 3 5 7
l=[ 'bec','def','cef','ghd','rtr','fgh','ewr']
现在,我想通过以下方式将列表附加到数据帧-
对于dataframe中的每一行,我们计算其中非零元素的数量(假设第一行有3个)
我们取3=1.5的50%(四舍五入为1),并将列表l中的许多元素添加到行中(从开头开始)。对于第一行,它是“bec”,因为“bec”已经存在于 我们将其计数增加1
如果列表中的元素不在数据框中,我们将其追加到末尾
干运行-
对于第1行(索引1)-非零元素的数量为6。因此,其中50%为3。因此,我们从列表['bec'、'def'、'cef']中选取前3个元素。“bec”已经存在,因此其计数增加1,变成(2,2)=6。 类似地,“def”存在,因此它变为(2,3)=7。“cef”不存在于数据帧中,因此我们添加它并将计数设为1
最终输出如下所示-
abc bec def rtr rwr xx cef
0 0 1 8 5 5 4 0
1 2 6 7 6 6 5 1
2 4 7 1 7 7 6 0
3 5 5 2 2 1 7 1
4 2 1 1 0 0 8 0
5 2 1 1 3 5 7 1
我们可以使用^ {CD1>}+^ {CD2>}沿{{CD3}}计算每行中的非零值,然后用{{CD4>}来计算这些计数的{{CD6}},然后在列表理解中使用^ {CD7>}方法创建一个记录列表,现在创建一个数据文件,从这些记录中让^ {< CD8>}和^ {CD9>}用^ ^表示。{}以获得所需的结果
相关问题 更多 >
编程相关推荐