使用其他列值的串联过滤文本列上的Pandas DataFrame

X先生

我有一个像这样的大数据框:

data = [
        [0,'His score is 15/30',15,30],
        [1, 'She scored 34/50 in math', np.NaN, np.NaN],
        [2,'avg score is 32.5/50 for english',32,50],
        [3,'He scored last @ 15/50',25,50]
        ]

df = pd.DataFrame(data, columns=['id','text','num','denom'])

|   id | text                             |   num |   denom |
|-----:|:---------------------------------|------:|--------:|
|    0 | His score is 15/30               |    15 |      30 |
|    1 | She scored 34/50 in math         |   nan |     nan |
|    2 | avg score is 32.5/50 for english |    32 |      50 |
|    3 | He scored last @ 15/50           |    25 |      50 |

我想选择df.text中df.num +'/'+ df.denom的所有行

我尝试了以下代码,但它返回了一个空的DataFrame:

df.loc[df.apply(lambda row: (str(row.num)+'/' + str(row.denom)) in row.text, axis=1) ]
J

这样的事情行吗?

您正在尝试将转换为字符串的浮点数与字符串中的文本作为整数进行匹配。

如果您还尝试匹配浮点数,则此方法效果不佳。



df = df.fillna(0)
df= df.loc[df.apply(lambda x: (str(int(x.num))+ '/' + str(int(x.denom))) in str(x.text), axis=1)]

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用其他已知列值的Pandas Dataframe fillna()

Pandas DataFrame过滤基于其他列的str列

如何使用&串联条件以过滤Pandas Dataframe?

根据其他列的值为Pandas Dataframe创建列

Pandas DataFrame聚合列,其他列的名称为值

Pandas DataFrame列串联

使用Pandas DataFrame中其他两列的键和值创建字典列

根据值Pandas Dataframe获取所有其他列

根据其他列值创建Pandas Dataframe行

按索引列上的条件过滤pandas Dataframe中的值

使用pandas.DataFrame.apply查找值并将其替换为来自其他DataFrame的值

使用 numpy 数组的列值上的条件过滤 Pandas DataFrame

从同一DataFrame中的其他行创建新的Pandas DataFrame列等于值

如果值计数低于阈值,则将列值映射为“其他”-分类列-Pandas Dataframe

Pandas Dataframe-按列值分组并从其他列中查找值

使用查找到其他Dataframe中的值来引发Dataframe列转换

Pandas / Python:根据行值和其他DataFrame设置新列的值

根据其他列的值替换 pandas.DataFrame 的 NaN 值(根据公式)

DataFrame通过其他列应用过滤

Spark Dataframe上的滚动总和由其他列过滤

pandas DataFrame中的新列取决于其他列的值

如何基于Pandas DataFrame中其他列的值创建新列

将列添加到包含其他列值列表的pandas DataFrame中

Pandas DataFrame-根据其他列的值填充列的NaN

如何根据其他列值将列添加到 pandas DataFrame?

pandas dataframe根据相应行的其他列更新列值

如何根据Pandas DataFrame中其他列的值仅对某个列的某些元素求和?

比较一列中的float值与pandas DataFrame中的所有其他列

Pandas Dataframe用其他列的第一个值填充列