對於object
數據I可以兩列映射到三分之一,(object
)元組映射幾個數值列到元組的新列在熊貓
>>> import pandas as pd
>>> df = pd.DataFrame([["A","b"], ["A", "a"],["B","b"]])
>>> df
0 1
0 A b
1 A a
2 B b
>>> df.apply(lambda row: (row[0], row[1]), axis=1)
0 (A, b)
1 (A, a)
2 (B, b)
dtype: object
的柱(參見也Pandas: How to use apply function to multiple columns)。
但是,當我嘗試做同樣的事情數值列
>>> df2 = pd.DataFrame([[10,2], [10, 1],[20,2]])
df2.apply(lambda row: (row[0], row[1]), axis=1)
0 1
0 10 2
1 10 1
2 20 2
所以不是一系列對(即[(10,2), (10,1), (20,2)]
)我得到一個DataFrame
。
我該如何強制pandas
實際獲得一系列配對? (最好,做起來不是轉換成字符串,然後解析更好。)
以前的行爲似乎是一個錯誤(並在開發分支中修復,但不在0.12中)。 –
爲什麼你需要一個「元組」的「系列」?把它作爲DataFrame中的兩列是非常靈活的。 –
@PhillipCloud它不是爲了進一步存儲 - 只需要一個我有對的系列(所以我可以用series.value_counts()來爲配對進行統計 - 例如計算互信息)。 –