簡體   English   中英

在過濾另一列后返回 Pandas dataframe *作為數據幀*的單列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM