[英]Get particular row as series from pandas dataframe
我們如何將特定的過濾行作為系列?
示例數據幀:
>>> df = pd.DataFrame({'date': [20130101, 20130101, 20130102], 'location': ['a', 'a', 'c']})
>>> df
date location
0 20130101 a
1 20130101 a
2 20130102 c
我需要選擇location
為c
的行作為一個系列 。
我試過了:
row = df[df["location"] == "c"].head(1) # gives a dataframe
row = df.ix[df["location"] == "c"] # also gives a dataframe with single row
在任何一種情況下,我都不能將該行作為系列。
使用將從數據框中刪除一個維度的squeeze
函數:
df[df["location"] == "c"].squeeze()
Out[5]:
date 20130102
location c
Name: 2, dtype: object
當設置為True
時, DataFrame.squeeze
方法的作用與read_csv
函數的squeeze
參數相同:如果結果數據幀是1-len數據幀,即它只有一個維度(列或行),則對象是擠壓到較小尺寸的物體。
在您的情況下,您從DataFrame獲得一個Series對象。 如果將Panel壓縮到DataFrame,則適用相同的邏輯。
擠壓在您的代碼中是明確的,並清楚地顯示您的意圖“拋棄”手中的對象,因為它的尺寸可以投影到較小的尺寸。
如果數據框有多個列或行,則squeeze無效。
您可以使用整數索引( iloc()函數)獲取第一行:
>>> df[df["location"] == "c"].iloc[0]
date 20130102
location c
Name: 2, dtype: object
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.