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)