使用pandas Series

时间:2017-08-14 19:52:16

标签: python pandas dataframe indexing

我有一个包含键值对的pandas系列,其中键是我的pandas DataFrame中列的名称,值是DataFrame该列中的索引。

例如:

系列: Series

然后在我的DataFrame中: Dataframe

因此,从我的DataFrame中,我想从我的DataFrame中提取索引12的值为' A',即435.81。我想把所有这些价值观都放到另一个系列中,所以像{' A':435.81,' AAP':468.97,...}

我的声誉很低,所以我无法将图片发布为图片而不是链接(有人可以帮忙解决此问题吗?谢谢!)

1 个答案:

答案 0 :(得分:0)

我认为这个索引是您正在寻找的。

pd.Series(np.diag(df.loc[ser,ser.axes[0]]), index=df.columns)

df.loc允许您根据字符串索引进行索引。您可以从ser中的值(df.loc中的第一个位置参数)获取行,并从ser的标签获取列位置(我不知道是否存在获取系列标签的方法比ser.axes[0]更好。您想要的值沿着结果的主对角线,因此您只需要对角线并将它们与列标签相关联。

我之前给出的索引仅在您的DataFrame使用整数行索引时,或者如果Series值的数据类型与DataFrame行索引匹配时才起作用。如果您有一个具有非整数行索引的DataFrame,但仍希望获得基于整数行的值,那么请使用以下内容(但是,系列中的所有索引必须在DataFrame的范围内,而不是' AAL'是1758,只有12行,例如):

pd.Series(np.diag(df.iloc[ser,:].loc[:,ser.axes[0]]), index=df.columns)