Python 熊猫从列名列表中获取数据

Python 熊猫从列名列表中获取数据,python,pandas,Python,Pandas,我有一个熊猫数据框:df和列名列表:列如下: df = pd.DataFrame({ 'A': ['b','b','c','d'], 'C': ['b1','b2','c1','d2'], 'B': list(range(4))}) columns = ['A','B'] 现在,我想在一个系列中从dataframe的这些列中获取所有数据,如下所示: b 0 b 1 c 2 d 4 这就是我所尝试的: srs = pd.Series() srs.append(df[c

我有一个熊猫数据框:
df
和列名列表:
如下:

df = pd.DataFrame({
    'A': ['b','b','c','d'],
    'C': ['b1','b2','c1','d2'],
    'B': list(range(4))})

columns = ['A','B']
现在,我想在一个系列中从dataframe的这些列中获取所有数据,如下所示:

b
0
b
1
c
2
d
4
这就是我所尝试的:

srs = pd.Series()
srs.append(df[column].values for column in columns)
但它抛出了这个错误:

TypeError:无法连接类型为“”的对象; 只有Series和DataFrame OBJ有效

如何解决此问题?

我认为您可以使用:

或使用and
drop=True

srs = df[columns].stack().reset_index(drop=True)
如果可能需要更改订单,请使用:

你可以做:

from itertools import chain

import pandas as pd
df = pd.DataFrame({
    'A': ['b','b','c','d'],
    'C': ['b1','b2','c1','d2'],
    'B': list(range(4))})

columns = ['A','B']

res = pd.Series(chain.from_iterable(df[columns].to_numpy()))
print(res)
输出

0    b
1    0
2    b
3    1
4    c
5    2
6    d
7    3
dtype: object

您能添加一个小的输入/输出示例吗?@Danimesjo添加了示例输入/输出
from itertools import chain

import pandas as pd
df = pd.DataFrame({
    'A': ['b','b','c','d'],
    'C': ['b1','b2','c1','d2'],
    'B': list(range(4))})

columns = ['A','B']

res = pd.Series(chain.from_iterable(df[columns].to_numpy()))
print(res)
0    b
1    0
2    b
3    1
4    c
5    2
6    d
7    3
dtype: object