首页 > 解决方案 > 向熊猫数据框添加行,其中列包含应该是另一行的附加值?

问题描述

简化的 df ,其中某些行包含其他条目another flavor,应该是另一行:

   values more values   flavor another flavor
0       6         foo  caramel      chocolate
1       4         baz  vanilla            NaN

df = pd.DataFrame({"values": [6, 4],"more values": ["foo",  "baz"],"flavor": ["caramel", "vanilla"],"another flavor": ["chocolate",  np.nan],})

我们需要添加另一行,其中包含来自其他列的值,并填充flavor来自another flavor. 然后我们会下降another flavor以获得desired_df

   values more values     flavor
0       6         foo    caramel
1       6         foo  chocolate
2       4         baz    vanilla

desired_df = pd.DataFrame({"values": [6, 6, 4],"more values": ["foo", "foo", "baz"],"flavor": ["caramel", "chocolate",  "vanilla"],})

这样做的实用方法是什么?有没有可以作为关键字搜索的表达式?

标签: pythonpandasdataframe

解决方案


请使用 loc 访问器对合适的列进行切片,然后追加。如果需要,您可以对值进行排序。

df.loc[:,:'flavor'].append(df.loc[:, df.columns != 'flavor'].rename(columns={'another flavor':'flavor'}),ignore_index=True).dropna().sort_index().

推荐阅读