2024-03-29 09:00:54 发布
网友
我需要为我的表或基于以下内容的单独表创建一些附加列:
我有一张桌子
我需要创建额外的列,其中列索引(列的名称)将作为值插入。像这样:
在熊猫身上怎么做?有什么想法吗? 谢谢
如果只需要1值的匹配列:
1
df = (df.set_index('name') .eq(1) .dot(df.columns[1:].astype(str) + ',') .str.rstrip(',') .str.split(',', expand=True) .add_prefix('c') .reset_index()) print (df)
解释:
其思想是为被列名替换的值创建带有True的布尔掩码-因此用^{}和1进行比较,并用^{}的矩阵乘以所有列,而不首先添加分隔符。然后用^{}删除最后一个traling分隔符,并用^{}作为新列,用^{}更改列名。你知道吗
True
另一种解决方案:
df1 = df.set_index('name').eq(1).apply(lambda x: x.index[x].tolist(), 1) df = pd.DataFrame(df1.values.tolist(), index=df1.index).add_prefix('c').reset_index()
如果只需要
1
值的匹配列:解释:
其思想是为被列名替换的值创建带有} 和} 的矩阵乘以所有列,而不首先添加分隔符。然后用^{} 删除最后一个traling分隔符,并用^{} 作为新列,用^{} 更改列名。你知道吗
True
的布尔掩码-因此用^{1
进行比较,并用^{另一种解决方案:
相关问题 更多 >
编程相关推荐