将列表列表转换为pandas数据帧很容易:
import pandas as pd
df = pd.DataFrame([[1,2,3],[3,4,5]])
Run Code Online (Sandbox Code Playgroud)
但是如何将df变回列表列表呢?
lol = df.what_to_do_now?
print lol
# [[1,2,3],[3,4,5]]
Run Code Online (Sandbox Code Playgroud) 我是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)
Run Code Online (Sandbox Code Playgroud)
我的代码:
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
Run Code Online (Sandbox Code Playgroud)
对我来说,这段代码似乎既粗糙又效率低下。我array在a之前转换为a 的事实list是导致问题的原因,即list嵌套。尽管如此,我找不到将行直接转换为列表的方法。有什么建议吗?
这个问题是不是愚弄的这个。就我而言,我希望清单不多。