如何过滤包含另一列的行?例如,如果我们有两列A,B的DT,是否可以使用B.contains(A)过滤行?不仅B是否包含来自DT的所有A中的一些A值,而且还只是一行。
AB
大声笑
'ram''rambo'
'ki''pio'
结果:
AB
大声笑
'ram''rambo'
您可以使用boolean indexing
由apply
和(in
如果需要)过滤器列A
和B
每行创建的掩码:
#if necessary strip ' in all values
df = df.apply(lambda x: x.str.strip("'"))
#df = df.applymap(lambda x: x.strip("'"))
print (df.apply(lambda x: x.A in x.B, axis=1))
0 True
1 True
2 False
dtype: bool
df = df[df.apply(lambda x: x.A in x.B, axis=1)]
print (df)
A B
0 lol lolec
1 ram rambo
解决方案的差异 -输入DataFrame
已更改:
print (df)
A B
0 lol pio
1 ram rambo
2 ki lolec
print (df[df.apply(lambda x: x.A in x.B, axis=1)])
A B
1 ram rambo
print (df[df['B'].str.contains("|".join(df['A']))])
A B
1 ram rambo
2 ki lolec
我有一个这样的数据帧 我想得到相同的所有数据,修改为只保留在tokeep中的字符串。 理想情况下,我希望将 我第一次想我可以用这样的东西 但我无法找到解决方案。 有人能指导我吗?
问题内容: 说我有以下pandas数据框: 我如何“堆叠”“ b”列中的列表以将其转换为数据框: 问题答案: 更新: 通用矢量化方法-也适用于多列DF: 假设我们有以下DF: 解: 设定: 向量化NumPy方法: 旧答案: 尝试这个: 或@Boud提供的更好的解决方案:
我在数据库中有一个包含(id、日期、类别、行、持续时间)的表,我每天都有许多注册表,例如(1,12/12/2014,cat1,ligne1,12)(2,12/2014,cat2,ligne1,10)(3,12/12/2014,cat3,ligne2,23) (4,13/12/2014,cat1,LINGE1,10)(5,13/12/2014,cat2,LINGE1,20)(6,13/12/2014
问题内容: 我需要将DataFrame中除第一列之外的所有列除以第一列。 这是我正在做的事情,但我想知道这是否不是“正确的”熊猫方式: 有没有办法做类似的事情?(这只是给出了一个10x12的数据框。) 另外,在阅读了关于SO的一些类似问题之后,我尝试了一下,但是给出了广播错误。 问题答案: 我相信并工作。
我有个名单 我需要用java生成一组列表,如下所示 以下是我目前的代码 输出 预期
问题内容: 我需要基于Pandas数据框中的另一列的值来设置一列的值。这是逻辑: 我无法做到这一点,我想要做的就是简单地创建一个具有新值的列(或更改现有列的值:任何一个都对我有用)。 如果我尝试运行上面的代码,或者将其编写为函数并使用apply方法,则会得到以下信息: 问题答案: 一种方法是将索引与配合使用。 例 在没有示例数据框的情况下,我将在此处进行补充: 假设您想 创建一个新列 ,除wher