Python pandas - 根据预定义的数组过滤数据框

时间:2017-08-06 01:40:08

标签: python pandas

我正在尝试根据预定义数组的内容过滤数据框。

我在StackOverflow上查了几个例子,但只是得到一个空输出。

我无法弄清楚我做错了什么。我可以在这里寻求一些指导吗?

import pandas as pd
import numpy as np

csv_path = 'history.csv'
df = pd.read_csv(csv_path)

pre_defined_arr = ["A/B", "C/D", "E/F", "U/Y", "R/E", "D/F"]
distinct_count_column_headers = ['Entity']

distinct_elements= pd.DataFrame(df.drop_duplicates().Entity.value_counts(),columns=distinct_count_column_headers)
filtered_data= distinct_elements[distinct_elements['Entity'].isin(pre_defined_arr)]    

print("Filtered data ... ")
print(filtered_data)

输出

Filtered data ... 
Empty DataFrame
Columns: [Entity]
Index: []

1 个答案:

答案 0 :(得分:0)

使用filter函数对其进行管理 - > .filter(items=pre_defined_arr )

import pandas as pd
import numpy as np

csv_path = 'history.csv'
df = pd.read_csv(csv_path)

pre_defined_arr = ["A/B", "C/D", "E/F", "U/Y", "R/E", "D/F"]
distinct_count_column_headers = ['Entity']

distinct_elements_filtered= pd.DataFrame(df.drop_duplicates().Entity.value_counts().filter(items=pre_defined_arr),columns=distinct_count_column_headers)

奇怪的是,我碰到的只有一个答案表明filter功能。差不多有9个人在那里谈论.isin功能,这在我的案例中并不起作用。