映射多个数据框和填充列的值

el323

假设我具有以下三个数据框:

数据框1:

df1 = {'year': ['2010','2012','2014','2015'], 'count': [1,1,1,1]}
df1 = pd.DataFrame(data=df1)
df1 = df1.set_index('year')
df1

year    count
2010    1
2012    1
2014    1
2015    1

数据框2:

df2 = {'year': ['2010','2011','2016','2017'], 'count': [2,1,3,1]}
df2 = pd.DataFrame(data=df2)
df2 = df2.set_index('year')
df2

year    count
2010    2
2011    1
2016    3
2017    1

数据框3:

df3 = {'year': ['2010','2011','2012','2013','2014','2015','2017'], 'count': [4,2,5,4,4,1,1]}
df3 = pd.DataFrame(data=df3)
df3 = df3.set_index('year')
df3

year    count
2010    4
2011    2
2012    5
2013    4
2014    4
2015    1
2017    1

现在,我想拥有所有年份和计数的三个数据框。例如,如果df1缺少年份2011、2013、2016、2017,则将这些年份添加到df1索引中,每个新添加的索引的计数为0。

因此,对于df1,我的输出将如下所示:

year    count
2010    1
2012    1
2014    1
2015    1
2011    0
2013    0
2016    0
2017    0

df2和df3也是如此。谢谢。

耶斯列尔

你可以用unionreindex

idx = df1.index.union(df2.index).union(df3.index)
print (idx)
Index(['2010', '2011', '2012', '2013', 
       '2014', '2015', '2016', '2017'], dtype='object', name='year')

另一个解决方案:

from functools import reduce
idx = reduce(np.union1d,[df1.index, df2.index, df3.index])
print (idx)

['2010' '2011' '2012' '2013' '2014' '2015' '2016' '2017']

df1 = df1.reindex(idx, fill_value=0)
print (df1)
      count
year       
2010      1
2011      0
2012      1
2013      0
2014      1
2015      1
2016      0
2017      0
df2 = df2.reindex(idx, fill_value=0)
print (df2)
      count
year       
2010      2
2011      1
2012      0
2013      0
2014      0
2015      0
2016      3
2017      1
df3 = df3.reindex(idx, fill_value=0)
print (df3)
      count
year       
2010      4
2011      2
2012      5
2013      4
2014      4
2015      1
2016      0
2017      1

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用pd.merge映射一个数据框中来自另一个数据框的多个列的值

大熊猫:根据一列中的相似值,使用多个数据框中的值填充数据框中的空列

将多个数据框列映射到R中的百分位值时处理NA

基于Python中另一个数据框的多个列合并和填充缺失值

比较多个数据框使用二进制值添加新的列填充以进行匹配

跨多个数据框汇总列值

将基于三列匹配值的多个数据框合并为单个数据框

跨多个数据框的平均行和列

r:使用t.test的t统计量和p值填充两个数据框列

用另一个数据框的值填充数据框列

根据另一列中的条件填充多个数据框列

大熊猫在2个数据框中的映射值和外连接+聚合值

熊猫根据另一个数据框将多个列和行值设置为nan

将多个数据框保存到多个文本填充

根据列中的值填充另一个数据框的值

如何将键映射到多个值到带有多个值的数据框列?

如何将一个数据框的单列中的值映射到另一个数据框的两列并提取映射的值?

从另一列列表中的特定值填充一个数据框列

如何使用跨2个数据框的多个条件填充列?

Python根据另一个数据框值中存在的列索引填充数据框值

根据列值用另一个数据框的值填充数据框

如何映射和连接值两个数据框python

如何用多个数据框列的值替换列中的值

搜索和查找从另一个数据框中的一个数据框中搜索值,并根据熊猫中的查找值填充新列

映射两个数据框的列并从列表中添加一个值

R:根据跨三个不同列的映射值合并两个数据框

如何使用R中另一个数据框的值填充列

使用另一个数据框中的指定值填充一列

用另一个数据框的值填充多列