首页 > 解决方案 > 如何使用一系列列名从熊猫数据框中获取系列?

问题描述

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相对应的值作为它们的标识符,即(index, value)s.loc()df

s1 = pd.Series(index=[0, 1, 2], data=[1, 5, 9])

标签: pythonpandasindexingslicedata-wrangling

解决方案


用于根据和DataFrame.lookup查找值,然后从此查找值创建一个新系列:dfs.indexs

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

推荐阅读