我有一個多行和 4 列的資料框。每列包含一個包含 100 個值的陣列。
我這樣做的直觀方式與我使用多維 numpy 陣列的方式相同。
例如,我想要column1. 所以我說
df["column1"][:][0]
對我來說這是有道理的:首先選擇列,然后取每個陣列,然后取每個陣列的第一個元素。
但是,它根本不起作用。相反,它只是從column1第 1 行吐出整個陣列。
但是——這是最令人沮喪的事情——如果我說:
df["column1"][1][0]
它根據我的預期邏輯準確地給了我我所期望的,例如,我在column1.
如何獲取每個陣列中的每個第 n 個元素column1?
uj5u.com熱心網友回復:
df["column1"][:][0]沒有做你期望的原因是df["column1"][:]回傳一個系列。對于系列,使用括號索引回傳該索引處的系列專案。
如果您想要一個系列,其中系列中的每個專案都是該索引處相應陣列中的專案,正確的解決方案 - 無論是否直觀 - 是.str[...]在系列上使用。
代替
df["column1"][:][0]
用這個:
df["column1"].str[0]
看起來似乎.str應該只用于實際str值,但一個巧妙的技巧是也適用于串列。
uj5u.com熱心網友回復:
這里有一些方法可以做到這一點:
[item[0] for item in df['column1']] # will result in a list
或者
df['column1'].apply(lambda item: item[0]) # will result in a series
不確定您是否正在尋找一種類似于切片的方法,但是 AFAIU pandas 認為您表中的串列只是任意物件,而不是 pandas 為其提供的糖。
當然,您可以通過從列中創建資料框來做其他奇特的事情:
pd.DataFrame(df['column1'].tolist())
然后用它做任何你想做的事。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/358445.html
上一篇:從兩個現有資料框創建兩個新資料框,同時考慮其多索引列及其值的所有組合
下一篇:將JSON回應展平并輸出到csv
