我是Python的新手,因此在将a中的一行DataFrame
转换为flat时遇到了麻烦list
。为此,我使用以下代码:
玩具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
对我来说,这段代码似乎既粗糙又效率低下。我array
在a之前转换为a 的事实list
是导致问题的原因,即list
嵌套。尽管如此,我找不到将行直接转换为列表的方法。有什么建议吗?
这个问题是不是愚弄的这个。就我而言,我希望清单不多。
您快到了,实际上只是使用flatten
而不是reduce
取消嵌套该数组(而不是取消嵌套该列表),并使用链式操作来获得一个衬里:
df.loc[df.n == "d", ['a','b']].values.flatten().tolist() #[4, 6]