我有.csv文件,如下所示:
id,product
1,car
1,phone
2,tv
我希望获得符合特定条件的所有行,例如: 如果id == 1,并且产品值包含字母“a”,则打印所有匹配的行(例如'1,car'将被打印)。我知道使用数据库会更好,但我需要使用csv文件。
我尝试过熊猫:
import pandas as pd
df = pd.read_csv('products.csv')
for value_i in df.id:
for value_p in df.product:
if (value_i==2 and "a" in value_p):
print(value_i, value_p)
但我没有得到好结果。如果有人可以给我一个提示如何访问列的值,我将非常感激。
答案 0 :(得分:1)
您可以使用boolean indexing
和字符串中的检查值使用str.contains
:
df1 = df[(df['id'] == 1) & (df['product'].str.contains('a'))]
print (df1)
id product
0 1 car
详情:
print ((df['id'] == 1) & (df['product'].str.contains('a')))
0 True
1 False
2 False
dtype: bool