将pandas系列作为一列添加到多索引的DataFrame填充级别

jtm_beta

我有一个包含多索引的数据框,以及一系列数据:

import pandas as pd
import numpy as np

df = pd.DataFrame({'foo':['A','A','A','B','B','B','C','C','C'],
                   'bar':[1,2,3,1,2,3,1,2,3],
                   'vals':np.random.randn(9)})
df.set_index(['foo','bar'], inplace=True)

s = pd.Series(['ham','eggs','cheese'])

我想将系列添加为新列,以填充foo的每个级别。谁能指出这样做的有效方法?

谢谢

耶斯列尔

您可以使用get_level_values通过索引值的变化指数创造新列Seriefoo值,并map通过字典创建它们to_dict

s.index = ['A','B','C']
print s
A       ham
B      eggs
C    cheese
dtype: object

df['new'] = df.index.get_level_values('foo')
print df
             vals new
foo bar              
A   1   -2.877779   A
    2   -0.661478   A
    3    0.705928   A
B   1   -0.358598   B
    2    0.731982   B
    3   -0.036367   B
C   1    0.588914   C
    2   -0.779635   C
    3    0.476337   C

df['new'] = df['new'].map(s.to_dict())
print df
             vals     new
foo bar                  
A   1   -2.877779     ham
    2   -0.661478     ham
    3    0.705928     ham
B   1   -0.358598    eggs
    2    0.731982    eggs
    3   -0.036367    eggs
C   1    0.588914  cheese
    2   -0.779635  cheese
    3    0.476337  cheese

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将“$”添加到我的 Pandas 数据框值并使用一列作为索引?

将pandas系列作为新列添加到特定数据框行

如何将列作为第一列添加到prettytable

如何将pandas DataFrame的第一列作为系列?

使用第一列作为索引将Excel转换为Pandas DataFrame

Spark DataFrame 将多列聚合为一列作为字符串

将多列合并为一列作为python pandas中的列表

将日期(系列)列从一个DataFrame添加到其他Pandas,Python

将Pandas系列作为行有效地添加到现有数据框

熊猫,如何将Series添加到DataFrame列,其中系列索引与DataFrame列匹配?

尝试将2列添加到pandas数据框,但其中一列已编入索引

使用附加索引值将系列添加到 DataFrame

如何将pandas系列添加到忽略索引的DataFrame中?

将索引添加到Pandas系列中的重复项

连续将Pandas系列添加到Pandas DataFrame

将列表或系列作为一行附加到熊猫DataFrame吗?

如何将多列添加到前3列并使用pandas重复索引值?

将连续的行号作为第一列添加到多个熊猫

如何基于多索引映射将列添加到DataFrame

将列表作为行和列索引添加到pandas数据框

熊猫-从其中一列以Dict为基础将列添加到DataFrame

在DataFrame中添加具有相邻列数的新列作为另一列的值

使用另一列作为索引的Pandas子字符串

从numpy数组创建Pandas数据框,并使用数组的第一列作为索引

将数字作为后缀添加到多列

根据一列作为变量和两列作为值,将 pandas df 从长转换为宽

如何将所有列添加到Pandas的一列中?

如何根据另一列的时间将列添加到pandas数据框

将列添加到 Pandas 数据框并遍历其中一列