我有一个包含2列(订单和产品)的数据框。我想从产品列中过滤具有两个(在许多键和产品代码中)属性的订单列。
尝试过熊猫字符串,但是它什么也没做。
orders = df_ipp_h_complex_f[df_ipp_h_complex_f['PRODUCT'].str.contains(("1666-K030-V001|1666-K037-V001|1666-K020-V002")) & df_ipp_h_complex['PRODUCT'].str.contains("MC")]
期望得到包含没有产品密钥和代码的订单的df。
实际上它给出的过滤器行数为0
例如,我希望以下代码返回row1,row2和row4作为输出:
df = pd.DataFrame.from_dict({'a': ['h', 'hxx', 'gxx', 'bxx'],
'b':['ac', 'xxz', 'bc', 'xxy']})
df[df['b'].str.contains('a') & df['b'].str.contains('xx')]
答案 0 :(得分:0)
我尝试将您的代码复制到一个玩具示例中(名称更简单,因此更易于阅读...),并且似乎可以正常工作(在pandas
版本0.21.1中)。
我将发布此代码示例,看看是否可以找到其他不同的地方。希望这会有所帮助。
import pandas as pd
df = pd.DataFrame.from_dict({'a': ['h', 'hxx', 'gxx', 'bxx'],
'b':['a', 'bxx', 'b', 'cxx'],
'c': ['one', 'two', 'three', 'four']})
df[df['a'].str.contains('xx') & df['b'].str.contains('xx')]