python - 将一行 DataFrame 添加到另一个 DataFrame 的优雅方式
问题描述
我有两个DataFrames
,其中一个是单行的DataFrame
。我想dataframe
在较大的所有行中添加一行。我可以解决它,但我正在寻找一个更简单的解决方案:
import pandas as pd
df1 = pd.DataFrame({'C':['car'],'D':['bus']})
print(df1)
C D
0 car bus
df2 = pd.DataFrame({'A':[1,2,3],'B':[8,2,0]})
print(df2)
A B
0 1 8
1 2 2
2 3 0
我想将数据帧一号线加入较大的一号线。结果应该是。
A B C D
0 1 8 car bus
1 2 2 car bus
2 3 0 car bus
我的尝试:我dummy
在两个 DataFrames 中都创建了一个列并做了一个left join
,但这并不优雅。我相信会有更简单的解决方案。
解决方案
我认为最优雅的是 use DataFrame.assign
,但必须使用字符串列名:
df2 = df2.assign(**df1.iloc[0])
print (df2)
A B C D
0 1 8 car bus
1 2 2 car bus
2 3 0 car bus
df1.columns=[1,8]
print (df1)
1 8
0 car bus
df2 = df2.assign(**df1.iloc[0])
print (df2)
TypeError:assign() 关键字必须是字符串
如果匹配第一个索引值,则另一种解决方案有效:
df2 = df2.join(df1.reindex(df2.index, method='ffill'))
print (df2)
A B C D
0 1 8 car bus
1 2 2 car bus
2 3 0 car bus
推荐阅读
- android - 如何从工具栏下方启动recyclerview
- openshift - openshift 秘密令牌到期
- javascript - HTML 表格单元格值计数器
- c++ - 外部 C++ 模块可以与 Arduino 一起使用吗?
- python - 3D分形切片渲染方法的验证
- python - 如何通过 to_timedelta() 转换一系列列
- python - Translating curl to python requests
- css - flex-shrink 基于每个元素的长度
- android - 用于从 UPnP 服务器到 VLCMedia palyer 播放带字幕视频的 Android 隐式意图
- amazon-s3 - AWS S3 静态软管:路由规则不适用于云端