我有一個包含兩列的資料框
data = train[['Age', "Pclass"]]
Age Pclass
0 22.0 3
1 38.0 1
2 26.0 3
3 35.0 1
4 35.0 3
... ... ...
886 27.0 2
887 19.0 1
888 24.0 3
889 26.0 1
890 32.0 3
我想要一個看起來像這樣的 Pandas 系列:
Age 22.0
Pclass 3.0
Name: 0, dtype: float64
Age 38.0
Pclass 1.0
Name: 1, dtype: float64
Age 26.0
Pclass 3.0
Name: 2, dtype: float64
Age 35.0
Pclass 1.0
Name: 3, dtype: float64
Age 35.0
Pclass 3.0
...
我怎樣才能做到這一點?
我嘗試了很多方法
series = data.iloc[0]
但我只得到第一個結果
Age 22.0
Pclass 3.0
Name: 0, dtype: float64
series = data.iloc[:]
但我又得到了一個 DataFrame
series = pd.Series(data['Age'], data['Pclass'])
這也不正確,因為我得到了這個結果:
Pclass
3 35.0
1 38.0
3 35.0
1 38.0
3 35.0
...
2 26.0
1 38.0
3 35.0
1 38.0
3 35.0
Name: Age, Length: 891, dtype: float64
還有其他建議嗎?
所以我想在我計算時得到這個輸出,series[0]這讓我回到年齡和series[1]所有 Pclasses
38.0
26.0
35.0
...
uj5u.com熱心網友回復:
你可以試試:
s = df.stack().droplevel(0)
print(s)
print(type(s))
輸出:
Age 22.0
Pclass 3.0
Age 38.0
Pclass 1.0
Age 26.0
Pclass 3.0
Age 35.0
Pclass 1.0
Age 35.0
Pclass 3.0
dtype: float64
<class 'pandas.core.series.Series'>
根據評論中的討論:
s = pd.Series(list(df.T.to_numpy()))
print(s)
print(type(s))
輸出:
0 [22.0, 38.0, 26.0, 35.0, 35.0]
1 [3.0, 1.0, 3.0, 1.0, 3.0]
dtype: object
<class 'pandas.core.series.Series'>
uj5u.com熱心網友回復:
你可以試試:
series = []
for i in range(len(data)):
series.append(data.iloc[i])
輸出:
Age 22
Pclass 1
Name: 0, dtype: int64
Age 48
Pclass 2
Name: 1, dtype: int64
Age 12
Pclass 3
Name: 2, dtype: int64
Age 45
Pclass 1
Name: 3, dtype: int64
如果您在計算時想要輸出,series[0]這會為您提供年齡和series[1]所有 Pclass,您可以使用data['Age']回傳所有年齡并data['Pclass']回傳所有 Pclass
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/333427.html
上一篇:Pandas在條件下添加列:如果單元格的值為True,則將Period中最大數字的值設定為true
下一篇:結合2個dfs的最佳方式
