Python 如何删除列表中不存在的数据帧值?
我有一份清单:Python 如何删除列表中不存在的数据帧值?,python,pandas,Python,Pandas,我有一份清单: myList = ['item1', 'item2', 'item3', 'item4', 'item5'] my.csv items quantity item1 1 item2 2 item3 2 item4 4 item4 1 item5 1 item6 3 我需要删除所有不包含items列中的list值的dataframe行 期望输出: items quan
myList = ['item1', 'item2', 'item3', 'item4', 'item5']
my.csv
items quantity
item1 1
item2 2
item3 2
item4 4
item4 1
item5 1
item6 3
我需要删除所有不包含items列中的list值的dataframe行
期望输出:
items quantity
item1 1
item2 2
item3 2
item4 4
item4 1
item5 1
有人能帮我吗?提前感谢。您可以使用
df.iterrows()
函数,其中df是pandas.DataFrame的缩写:
import pandas as pd
import numpy as np
myList = ['item1', 'item2', 'item3', 'item4', 'item5']
df = pd.DataFrame({ "items": ['item1', 'item2', 'item3', 'item4', 'item4','item5','item6'], "quantity": [1,2,2,4,1,1,3] })
for i, r in df.iterrows():
for j in myList:
if j==r['items']:
print(j," ",r['quantity'])
item1 1
item2 2
item3 2
item4 4
item4 1
item5 1
我想您需要类似于df[df['items'].isin(myList)]
的东西。未经测试。是的,这似乎有效。我不确定目标,但也可以使用pd.read_csv(skiprows=lambda x:x in[1,2,4,6])。