我有一个包含键值对的pandas系列,其中键是我的pandas DataFrame中列的名称,值是DataFrame该列中的索引。
例如:
系列: Series
然后在我的DataFrame中: Dataframe
因此,从我的DataFrame中,我想从我的DataFrame中提取索引12的值为' A',即435.81。我想把所有这些价值观都放到另一个系列中,所以像{' A':435.81,' AAP':468.97,...}
我的声誉很低,所以我无法将图片发布为图片而不是链接(有人可以帮忙解决此问题吗?谢谢!)
答案 0 :(得分:0)
我认为这个索引是您正在寻找的。 p>
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)