Python 如何使用一系列列名从数据帧中获取一系列?
我有一个带有数字数据的熊猫数据框Python 如何使用一系列列名从数据帧中获取一系列?,python,pandas,indexing,slice,data-wrangling,Python,Pandas,Indexing,Slice,Data Wrangling,我有一个带有数字数据的熊猫数据框df。我还有一个系列的s,索引与df相同,值由df列标签组成,例如 import pandas as pd df = pd.DataFrame( index=[0, 1, 2], columns=[0, 1, 2], data=[[1, 2, 3], [4, 5, 6], [7, 8, 9]] ) s = pd.Series(index=[0, 1, 2]), data=[0, 1, 2]) 如何使用s对df进行切片,并获得另一个系列s1,该系列
df
。我还有一个系列的s
,索引与df
相同,值由df
列标签组成,例如
import pandas as pd
df = pd.DataFrame(
index=[0, 1, 2], columns=[0, 1, 2],
data=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
)
s = pd.Series(index=[0, 1, 2]), data=[0, 1, 2])
如何使用s
对df
进行切片,并获得另一个系列s1
,该系列包含df
值,该值对应于s
中的(索引,值)
对,作为df
中的标识符,即
s1 = pd.Series(index=[0, 1, 2], data=[1, 5, 9])
使用DataFrame.lookup
根据s.index
和s
查找df
中的值,然后从此查找值创建一个新系列:
s1 = pd.Series(df.lookup(s.index, s), index=s.index)
另一个想法是使用DataFrame.stack
和使用DataFrame.loc
索引:
s1 = df.stack().loc[zip(s.index, s)].droplevel(1)
结果:
print(s1)
0 1
1 5
2 9
dtype: int64
谢谢应该这样做。