当前位置:  开发笔记 > 编程语言 > 正文

将一个DataFrame行转换为平面列表

如何解决《将一个DataFrame行转换为平面列表》经验,为你挑选了1个好方法。

我是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嵌套。尽管如此,我找不到将行直接转换为列表的方法。有什么建议吗?

这个问题是不是愚弄的这个。就我而言,我希望清单不多。



1> Colonel Beau..:

您快到了,实际上只是使用flatten而不是reduce取消嵌套该数组(而不是取消嵌套该列表),并使用链式操作来获得一个衬里:

df.loc[df.n == "d", ['a','b']].values.flatten().tolist()
#[4, 6]

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有