我有一个数据框,看起来像:
Something1 Something2
date 2020-03-30 2020-03-31 2020-04-01 2020-03-30 2020-03-31 2020-04-01
index_1 index_2 index_3 index_4
A0 B0 C0 D0 10 NaN 11 'bla' 'bli' 'blo'
A1 B1 C1 D1 8 NaN NaN 'bla1' 'bli1 'blo1'
A2 B2 C2 D0 0 NaN 303 'bla2' 'bli2' 'blo2'
当索引[1 | 2 | 3 | 4]是多索引时。 有些东西[1 | 2]是第一级列。 日期是重复的第二级列,它们在[1 | 2]的第一级列中是相同的
现在,我得到了一个不同的表,其中包含我想用当前表来充实的值。 新的表格如下所示:
index_4 date val
D0 2020-03-30 8
D0 2020-03-31 9
...
D1 2020-03-30 17
D1 2020-03-31 33
我想用那张旧桌子来充实这张旧桌子
我的问题是:如何使用新表填充旧表-当我只想在Something1
中设置值时,它看起来像(在某物的日期2020-03-31
中填充D0之后):
Something1 Something2
date 2020-03-30 2020-03-31 2020-04-01 2020-03-30 2020-03-31 2020-04-01
index_1 index_2 index_3 index_4
A0 B0 C0 D0 10 9 11 'bla' 'bli' 'blo'
A1 B1 C1 D1 8 NaN NaN 'bla1' 'bli1' 'blo1'
A2 B2 C2 D0 0 9 303 'bla2' 'bli2' 'blo2'
我尝试使用set_value
、xs
、at
设置值,但找不到正确的组合以到达正确的单元格。(也在this帖子中寻找了一些想法,但没有成功)
我想应该是这样的
df.at[index_4='D0']['Something1']['2020-03-31'] = new_df['D0', '2020-03-31']['val']
我能想到的一种方法是重塑数据,这样我们就可以将
index_4
和date
作为索引,映射值,然后重新重塑:df
和df2
,如问题所示。在问题的底部设置了可复制的数据帧李>.apply
,而是使用^{df2
添加列级别,使其与df
的列级别匹配df
的索引以仅包含df2
中的索引df2
更新df
,并根据需要重置索引李>可复制的
df2
设置可复制的
df
设置相关问题 更多 >
编程相关推荐