Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series?

加入好友
加入社群
Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series? - 儲蓄保險王

This method is most useful when you don’t know if your object is a Series or DataFrame, but you do know it has just a single column. In that case you can safely call squeeze to ensure you have a Series.

點此或下圖連結pandas官網:

Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series? - 儲蓄保險王

例如: 想要使用Series.str.split()

Series.str.contains()

只有Series才能做

但Series跟單欄的DataFrame

並不好分辨

就可以使用squeeze()

確認資料型態必為Series

(若Series只有一個資料,會壓縮成scalar)

 

df [6001 rows x 3 columns]: 

Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series? - 儲蓄保險王

 

df[“Freq(Hz)”]

其實已經是Series:

Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series? - 儲蓄保險王

df[“Freq(Hz)”].squeeze()

對Series再壓縮一次

do nothing:

Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series? - 儲蓄保險王

 

df[[“Freq(Hz)”]]

如果誤用[[ ]] (雙層方括弧)

(內層的[]是list的意思,
外層的[]則是定位的意思)

那會得到單欄的DataFrame:

Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series? - 儲蓄保險王

df[[“Freq(Hz)”]].squeeze()

會將單欄的DataFrame

壓縮成Series: 

Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series? - 儲蓄保險王

This method is most useful

when you don’t know if your object is a Series or DataFrame,

but you do know it has just a single column.

 

對於兩欄以上的DataFrame做壓縮

do nothing:

Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series? - 儲蓄保險王

 

ser[ ser==60000000000 ]

(只有單一資料的Series):

Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series? - 儲蓄保險王

其實看60000000000

左邊還帶有index 0

也知道type是Series

但只有單一資料

 

ser[ ser==60000000000 ].squeeze()

對只有單一資料的Series做壓縮

得到scalar: 

Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series? - 儲蓄保險王

推薦hahow線上學習python: https://igrape.net/30afN

df有兩欄,
第0欄為頻率,第1欄為Gain: 

Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series? - 儲蓄保險王

df_set_index = df.set_index(“frequency(MHZ) of WR28”)
df_set_index是單欄的DataFrame還是Series?

Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series? - 儲蓄保險王

df_set_index是只有單欄的DataFrame
若需要其為Series型態
可以使用squeeze()
ser=df_set_index.squeeze()

Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series? - 儲蓄保險王

推薦hahow線上學習python: https://igrape.net/30afN

加入好友
加入社群
Python:如何確保只有單欄資料的變數,其型態是 pandas.Series 而非單欄的DataFrame? pandas.DataFrame.squeeze() ; df.set_index() 將兩欄的df,其中一欄設為index後,其型態是單欄的DataFrame還是Series? - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *