python - 向熊猫数据框添加行,其中列包含应该是另一行的附加值?
问题描述
简化的 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"],})
这样做的实用方法是什么?有没有可以作为关键字搜索的表达式?
解决方案
请使用 loc 访问器对合适的列进行切片,然后追加。如果需要,您可以对值进行排序。
df.loc[:,:'flavor'].append(df.loc[:, df.columns != 'flavor'].rename(columns={'another flavor':'flavor'}),ignore_index=True).dropna().sort_index().
推荐阅读
- r - 在应用退出时更改默认闪亮的灰色应用屏幕
- apache-spark - 将列表作为参数传递给 spark sql 语句
- r - R 脚本中的 ASCII 字符 - 尽管编码为 UTF-8,但文本输出会将它们转换为其他字符
- javascript - 从 MongoDB 获取数据并在 HTML 中仅显示一个参数
- ios - 如何在 Xcode Objective-c 中从 CNContacts 获取街道地址
- node.js - express.js api 路由器中哪种方法更优雅?
- java - android 应用程序未安装在版本 9 及更高版本中
- typescript - 多个文件夹的多个 tsconfig
- python - 悬停模板标签标题更改python
- sql - SQL拆分字符串并插入表