熊猫根据一列中的值条件一次覆盖多列中的值

dkrynicki:

我有这样的DataFrame:

df = pd.DataFrame(data={
    'col0': [11, 22,1, 5]
    'col1': ['aa:a:aaa', 'a:a', 'a', 'a:aa:a:aaa'],
    'col2': ["foo", "foo", "foobar", "bar"],
    'col3': [True, False, True, False],
    'col4': ['elo', 'foo', 'bar', 'dupa']})

我想在col1中的“:”上分割后得到列表的长度,然后如果length> 2则覆盖值,或者如果length <= 2则不覆盖值。

理想情况下,尽可能快地排成一行。

目前,我尝试但它返回ValueError。

df[['col1', 'col2', 'col3']] = df.loc[df['col1'].str.split(":").apply(len) > 2], ("", "", False), df[['col1', 'col2', 'col3']])

编辑:col1条件。EDIT2:感谢您提供的所有出色的快速答复。惊人!EDIT3:在10 ^ 6行上计时:

@ansev 3.2657s

@jezrael 0.8922s

@ anky_91 1.9511s

耶斯雷尔:

使用Series.str.count,添加1,比较依据Series.gt并将列表分配给列表中的过滤列:

df.loc[df['col1'].str.count(":").add(1).gt(2), ['col1','col2','col3']] = ["", "", False]
print (df)
   col0 col1    col2   col3  col4
0    11               False   elo
1    22  a:a     foo  False   foo
2     1    a  foobar   True   bar
3     5               False  dupa

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫根据选择为条件的另一列中的值创建一列

如果条件在另一列中的每个值至少存在一次,则一列中的 SUM 值

熊猫根据另一列中的值替换值

根据条件用另一列的值替换多列中的值

根据一列中的条件创建一个新的熊猫列,并从同一数据框中的多列中分配值

根据布尔值将多列合并为大熊猫中的一列

Pandas 根据另一列的条件有选择地覆盖列中的值

如何根据熊猫另一列中的条件生成具有值的新列

熊猫:根据另一列中的条件更改该列的先前单元格值

根据熊猫中的缺失值创建一列

如何根据熊猫中另一列中的描述计算一列中的值?

根据条件将一列中的值替换为另一列中的值

在熊猫中一次在列中显示通用值

如何根据熊猫中另一列的下限值对一列中的值求和?

根据熊猫中的日期条件,将一列的值替换为NaN

如何根据多列其他列中的值减去一列中的值?

根据熊猫中数据框的另一列的值添加一列

在 R 中,如何根据一列中的重复值保留行的第一次出现?

根据另一列中的条件修改一列中的值的快捷方式

根据Excel中多列中的值在一列中显示多个值

根据条件填充另一列(熊猫)的空值

根据另一列中的相同值组合熊猫数据框列中的文本值

用另一列的条件填充一列并移动熊猫中的值

R:一次根据一列中的条件将整行推到 NA

根据前一列中的值替换多列中的值

在 SSRS 报告中创建一列以根据前一列的条件对值求和

根据条件将值分配给另一列中的一列

根据条件匹配另一列的向量替换一列中的值

如何根据条件将一列中的值设置为另一列