无法在条件下拆分数据框中的列值

阿比斯

我有一个输入数据框,看起来像

   0      1
0  0  10,30
1  1  10,40
2  2  20,50

现在,我尝试拆分第二列并将值存储在新列中。这里,如果A列中的值可被2整除,则从B列中获得第一个值,否则获得第二个值,如下

   A      B   C
0  0  10,30  10
1  1  10,40  10
2  2  20,50  50

我的代码:

import pandas as pd
import numpy as np

df = pd.DataFrame([(0, '10,30'), (1, '10,40'), (2, '20,50')])

df['n'] = np.where(df[0] % 2 == 0, df[0], 0 )
df[2] = (df[1]).str.split(',').str[df['n'].fillna(0)

print(df)

它抛出一个错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
耶斯列尔

我相信需要lookupsplited列DataFrame并将boolean mask转换为int以选择第一列by0和第二列by 1

df[2] = df[1].str.split(',', expand=True).lookup(df.index, (df[0] % 2 == 0).astype(int))
print (df)
   0      1   2
0  0  10,30  30
1  1  10,40  10
2  2  20,50  50

print (df[0] % 2 == 0)
0     True
1    False
2     True
Name: 0, dtype: bool

#select second, first, second column
print ((df[0] % 2 == 0).astype(int))
0    1
1    0
2    1
Name: 0, dtype: int32

条件发生变化的类似解决方案:

df[2] = df[1].str.split(',', expand=True).lookup(df.index, (df[0] % 2 != 0).astype(int))
print (df)
   0      1   2
0  0  10,30  10
1  1  10,40  40
2  2  20,50  20
print (df[0] % 2 != 0)
0    False
1     True
2    False
Name: 0, dtype: bool

#select first, second, first column
print ((df[0] % 2 != 0).astype(int))
0    0
1    1
2    0
Name: 0, dtype: int32

print (df[1].str.split(',', expand=True))
    0   1
0  10  30 <-first 10
1  10  40 <-second 40
2  20  50 <-first 20

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫数据框替换多个列条件下的值

如何拆分数据框中的列值

熊猫:基于列中的空值拆分数据框

根据列值拆分数据框

R group_by并使用mutate在条件下对数据框列中的不同值进行计数

使用python中该列唯一值的动态列表按列拆分数据框

必须根据另一列中的长度值拆分数据框列

根据列的值和定界符拆分数据框中的所有列

在一定条件下数据框单列中的值

在特定条件下汇总数据框中的行值

在某些条件下检查数据框中是否存在值的有效方法

在熊猫数据框中的特定条件下删除值

如何拆分数据框中的列并将每个值存储为新行(在熊猫中)?

按列值Scala拆分数据框

在特定条件下填充熊猫数据框列

在 R wrt 列数据类中拆分数据框

在条件下将数据框列的值添加到另一个数据框?

在一列中按值范围拆分数据框

根据列中的值拆分数据框 - 循环遍历 id 列表

如何通过在pyspark中的特定条件下添加列来丰富数据框?

在日期条件下删除数据框中具有相同ID的特定列

如何在python中的条件下增加数据框列?

在Pandas数据框中,如何在第二列的条件下提取同一列中不同行的值之间的差异?

合并Pandas数据框中的条件下的行

在Pandas数据框中的多个条件下删除行

在 R 中的多列中拆分数据框

根据列中的列表项拆分数据框

R按列中的新行拆分数据框

如何在特定条件下过滤熊猫数据框中的列值?