[英]Returning a single column of Pandas dataframe *as a dataframe* after filtering on another column
假設我們有以下數據框df
:
df = pd.DataFrame({'food' : ['spam', 'ham', 'eggs'],
'price' : [10, 20, 30],
'inventory' : ['normal', 'high', 'low']
我想過濾df
並僅返回價格大於 15 的food
列的元素。為此,我使用:
the_filter = df['price'] > 15
df_filter = df[the_filter]['food']
df_filter
1 ham
2 eggs
Name: food, dtype: object
對我來說問題是df_filter
作為一個系列返回(我需要返回是一個數據框)。
type(df_filter)
pandas.core.series.Series
我們可以使用.loc
並取回 dataframe object:
df.loc[:, ['food']]
但是我們如何按price
過濾呢?
使用.loc
指定要在 go 上返回的條件和列:
df_filter = df.loc[df['price'] > 15, ['food']]
Output:
>>> df_filter
food
1 ham
2 eggs
>>> type(df_filter)
pandas.core.frame.DataFrame
我們也可以使用 filter() 因為它返回與輸入 object 相同的類型
df_filter = df[the_filter].filter(['food'])
type(df_filter)
<class 'pandas.core.frame.DataFrame'>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.