簡體   English   中英

根據 pandas 中的列值重復並填充行?

[英]Repeat and fill rows based on column value in pandas?

我在很多天的過程中收集數據,並且可以選擇說一天中的數據應該是另一天的重復。 如何使用重復標簽列指定的數據填充 NaN 行?

此問題的變體: 基於列值重復 dataframe 的部分

#Example Dataframes 
example_data = [[1,np.NaN,"3a+b"],[2,np.NaN,"c"],[3,1,np.NaN],[4,np.NaN,"b+c"], [5,2,np.NaN], [6,0,0]]
to_solve = pd.DataFrame(example_data,columns=['Day','repeat_tag','calculation'])

desired= [[1,np.NaN,"3a+b"],[2,np.NaN,"c"],[3,1,"3a+b"],[4,np.NaN,"b+c"], [5,2,"c"],[6,0,0]]
desired_table=pd.DataFrame(desired,columns=['Day','repeat_tag','calculation'])

IIUC,您可以在map上使用 map 與系列計算中的值一次set_index Day,並使用fillna將值分配回計算。

to_solve['calculation'] = to_solve['calculation']\
                            .fillna(to_solve['repeat_tag']\
                                      .map(to_solve.set_index('Day')['calculation']))
print(to_solve)
   Day  repeat_tag calculation
0    1         NaN        3a+b
1    2         NaN           c
2    3         1.0        3a+b
3    4         NaN         b+c
4    5         2.0           c
5    6         0.0           0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM