如何根据条件用列名替换熊猫数据框中的值?

萨姆布兰德

我有一个看起来像这样的数据框:

在此处输入图片说明

我想将A:D范围内的所有1替换为该列的名称,以便最终结果应类似于:

在此处输入图片说明

我怎样才能做到这一点?

您可以使用以下方法重新创建我的数据框:

dfz = pd.DataFrame({'A' : [1,0,0,1,0,0],
                    'B' : [1,0,0,1,0,1],
                    'C' : [1,0,0,1,3,1],
                    'D' : [1,0,0,1,0,0],
                    'E' : [22.0,15.0,None,10.,None,557.0]})
亚历克斯·赖利

一种方法是使用“replace系列”映射列标签并将其传递给值(在这种情况下,这些标签相同):

>>> dfz.loc[:, 'A':'D'].replace(1, pd.Series(dfz.columns, dfz.columns))
   A  B  C  D
0  A  B  C  D
1  0  0  0  0
2  0  0  0  0
3  A  B  C  D
4  0  0  3  0
5  0  B  C  0

为了使更改永久生效,您可以将返回的DataFrame分配回dfz.loc[:, 'A':'D']

除了解决方案外,请记住,将数字和字符串类型混合在列中时,可能会失去很多性能优势,因为熊猫被迫使用通用的“对象” dtype来保存值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python:根据列名和条件替换数据框值

如何根据条件在熊猫数据框中的任何位置替换值?

熊猫:根据条件将数据框中的值替换为另一个数据框中的值

根据条件在熊猫数据框中添加新列,并替换不同列中的Nan值

如何根据条件替换熊猫数据框中的值?

根据条件用0和1替换数据框中的值

根据熊猫数据框中的条件为列分配值

根据查找替换熊猫数据框中的列名

根据条件在熊猫数据框中的多行中设置值

如何根据条件用NaN替换数据框列值?

根据多种条件替换熊猫数据框中的值

如何根据熊猫数据框数据透视表中的条件获取列中的值?

如何根据“标识符列”和熊猫数据框中的附加条件替换值?

如何根据条件在熊猫数据框的多列上分配值

如何根据条件从数据框列名称填充列值?

熊猫根据条件替换数据框值

如何根据条件对熊猫数据框的行值进行排序?

如何根据另一个数据框中的查找值替换熊猫数据框值?

根据条件用熊猫替换多列中的值

用熊猫替换数据框中的NaN值

如何根据条件替换熊猫数据框列中的单元格

如何根据特定条件用另一个数据框中的值替换数据框中的值?

如何根据函数替换熊猫数据框中的值

用单独数据框中的匹配值替换列名

如何替换熊猫数据框中的值?

用熊猫替换数据框中列的所有值

根据条件,用相应的列名替换 pandas 数据框中的特定值,

如何根据共享列值替换熊猫数据框中的值?

根据条件替换熊猫数据框列中的值