Python 如何将列表中的多个列合并到一个列表中
如何将数据帧中的多个列合并到一个列表中 输入:Python 如何将列表中的多个列合并到一个列表中,python,list,pandas,Python,List,Pandas,如何将数据帧中的多个列合并到一个列表中 输入: df = pd.DataFrame(np.random.randn(10000, 7), columns=list('ABCDEFG')) 如果我想从列a创建一个列表,我将执行: df1 = df['A'].tolist() 但是,如果我想将许多列合并到这个列表中,那么写df['A'、'B'、'C'…'Z']是没有效率的。tolist() 我已经尝试了以下操作,但它只是将列标题添加到列表中 df1 = list(df.columns)[0:8]
df = pd.DataFrame(np.random.randn(10000, 7), columns=list('ABCDEFG'))
如果我想从列a创建一个列表,我将执行:
df1 = df['A'].tolist()
但是,如果我想将许多列合并到这个列表中,那么写df['A'、'B'、'C'…'Z']是没有效率的。tolist()
我已经尝试了以下操作,但它只是将列标题添加到列表中
df1 = list(df.columns)[0:8]
预期输入:
A B C D E F G
0 0.787576 0.646178 -0.561192 -0.910522 0.647124 -1.388992 0.728360
1 0.265409 -1.919283 -0.419196 -1.443241 -2.833812 -1.066249 0.553379
2 0.343384 0.659273 -0.759768 0.355124 -1.974534 0.399317 -0.200278
预期产出:
[0.787576, 0.646178, -0.561192, -0.910522, 0.647124, -1.388992, 0.728360,
0.265409, -1.919283, -0.419196, -1.443241, -2.833812, -1.066249, 0.553379,
0.343384, 0.659273, -0.759768, 0.355124, -1.974534, 0.399317, -0.200278]
您可以使用
来记录
df = pd.DataFrame(np.random.randn(10, 10), columns=list('ABCDEFGHIJ'))
df.to_dict('l')
Out[1036]:
{'A': [-0.5611441440595607,
-0.3785906500723589,
-0.19480328695097676,
-0.7472526275034221,
-2.4232786057647457,
0.10506614562827334,
0.4968179288412277,
1.635737019365132,
-1.4286421753281746,
0.4973223222844811],
'B': [-1.0550082961139444,
-0.1420067090193365,
0.30130476834580633,
1.1271866812852227,
0.38587456174846285,
-0.531163142682951,
-1.1335754634118729,
0.5975963084356348,
-0.7361022807495443,
1.4329395663140427],
...}
或者添加值。tolist()
编辑:np.concatenate(df[list('ABC')].T.values.tolist())
这就是你要找的吗
lst = df.values.tolist()
flat_list = [item for x in lst for item in x]
print(flat_list)
我希望是一张单子。每一列都没有单独的列表。因此,不要用[[1,2,3],[1,2,3],[1,2,3]]
。这将是[1,2,3,1,2,3,1,2,3]
@Punter345您可以执行np.concatenate(df[list('ABC')].T.values.tolist())
检查更新,谢谢@Wen。这是非常有用的。我想可能有一种方法可以做到这一点,而无需合并并手动键入每个列名。如果您有100列,则可能没有效率。@Punter345您可以通过位置检查来选择.iloc
@Punter345您知道您只能选择一个答案作为接受答案,对吗?我不明白您希望输出是什么样子的?您可以在这里找到如何选择列范围-Updated@DanTemkin。我看过那篇文章,看不出它对我的问题有什么帮助。
lst = df.values.tolist()
flat_list = [item for x in lst for item in x]
print(flat_list)