我是Python新手,因此我無法將DataFrame
中的一行轉換爲平面list
。要做到這一點,我使用下面的代碼:將一個DataFrame行轉換爲平板列表
玩具DataFrame
:
import pandas as pd
d = {
"a": [1, 2, 3, 4, 5],
"b": [9, 8, 7, 6, 5],
"n": ["a", "b", "c", "d", "e"]
}
df = pd.DataFrame(d)
我的代碼:
df_note = df.loc[df.n == "d"][["a", "b"]].values #convert to array
df_note = df_note.tolist() #convert to nested list
df_note = reduce(lambda x, y: x + y, df_note) #convert to flat list
對我來說這代碼似乎是毛利率和低效率。在list
之前,我將其轉換爲array
,這是造成問題的原因,即list
被嵌套。經得起考驗,我無法找到將行直接轉換爲列表的方法。有什麼建議?
這個問題不是this的騙局。就我而言,我希望名單是平坦的。
也許OP具有更多的列,並希望子集只'了'和'B',萬一以上不適用於更通用的數據框。 (但好的方法仍然) –
你是對的,我的回答是基於我對OP做什麼的解釋,因此不那麼通用。我已經編輯了我的答案來澄清這一點。 – Takis