使用 ipywidgets 过滤 pandas 数据框
Filtering pandas dataframe using ipywidgets
我正在为我的数据框中的一列中的值使用下拉小部件。根据我在下拉列表中选择的值,我希望数据框仅过滤那些行。然后我会继续使用过滤后的数据框进行分析。
col1 | col2 | col3
A | Orange | 2
B | Apple | 3
A | Apple | 4
我会为 col2 设置一个下拉列表(使用 ipywidgets),当我选择 Apple
时,我想获得结果数据框。
col1 | col2 | col3
B | Apple | 3
A | Apple | 4
我不太了解 ipywidgets,但假设您可以获得您选择的值,比如“Apple”,按列值过滤掉就很容易了。
df = pd.DataFrame({"col1": ["A", "B", "A"],
"col2": ["Orange", "Apple", "Apple"],
"col3": [2, 3, 4]})
df = df[df["col2"] == "Apple"]
然后,当你打印df时,你会得到
col1 col2 col3
1 B Apple 3
2 A Apple 4
基本上,您通过 df["col2"] == "Apple"
创建一个掩码(真值和假值的数据框),然后您可以将该掩码用作索引,以仅获取掩码为真的值。
这会显示您 select 从下拉菜单中选择的水果。如果您想了解有关小部件的更多信息,我建议您观看 Scipy 2020 年关于交互式小部件的记录。
from ipywidgets import interact
import pandas as pd
def show_df(value):
data = [['A', 'Orange', 2],['B', 'Apple', 3],['A', 'Apple', 4]]
df = pd.DataFrame(data, columns=['Letter','Fruit','Number'])
print(df[df.Fruit==value])
interact(show_df, value = ['Apple','Orange'])
有更多专门的方法来创建下拉菜单,但这行得通。比如在这个例子中:
import ipywidgets as widgets
widgets.Select(
options=['Linux', 'Windows', 'OSX'],
value='OSX',
# rows=10,
description='OS:',
disabled=False
)
我正在为我的数据框中的一列中的值使用下拉小部件。根据我在下拉列表中选择的值,我希望数据框仅过滤那些行。然后我会继续使用过滤后的数据框进行分析。
col1 | col2 | col3
A | Orange | 2
B | Apple | 3
A | Apple | 4
我会为 col2 设置一个下拉列表(使用 ipywidgets),当我选择 Apple
时,我想获得结果数据框。
col1 | col2 | col3
B | Apple | 3
A | Apple | 4
我不太了解 ipywidgets,但假设您可以获得您选择的值,比如“Apple”,按列值过滤掉就很容易了。
df = pd.DataFrame({"col1": ["A", "B", "A"],
"col2": ["Orange", "Apple", "Apple"],
"col3": [2, 3, 4]})
df = df[df["col2"] == "Apple"]
然后,当你打印df时,你会得到
col1 col2 col3
1 B Apple 3
2 A Apple 4
基本上,您通过 df["col2"] == "Apple"
创建一个掩码(真值和假值的数据框),然后您可以将该掩码用作索引,以仅获取掩码为真的值。
这会显示您 select 从下拉菜单中选择的水果。如果您想了解有关小部件的更多信息,我建议您观看 Scipy 2020 年关于交互式小部件的记录。
from ipywidgets import interact
import pandas as pd
def show_df(value):
data = [['A', 'Orange', 2],['B', 'Apple', 3],['A', 'Apple', 4]]
df = pd.DataFrame(data, columns=['Letter','Fruit','Number'])
print(df[df.Fruit==value])
interact(show_df, value = ['Apple','Orange'])
有更多专门的方法来创建下拉菜单,但这行得通。比如在这个例子中:
import ipywidgets as widgets
widgets.Select(
options=['Linux', 'Windows', 'OSX'],
value='OSX',
# rows=10,
description='OS:',
disabled=False
)