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有效
如何解决此问题?我认为您可以使用:
或使用anddrop=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