我正在尝试根据预定义数组的内容过滤数据框。
我在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: []
答案 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
功能,这在我的案例中并不起作用。