提问人:Sudoh 提问时间:9/13/2022 更新时间:9/13/2022 访问量:22
有没有办法将熊猫细胞内两个不同的 n * n 个数据帧的相应单元格的内容连接起来?
Is there a way to concatenate the content of the respective cells of two different n * n data-frames within cells in pandas?
问:
有没有办法将熊猫细胞内两个不同的 n * n 个数据帧的相应单元格的内容连接起来?
例如:假设我有两个数据帧和 。df1
df2
df1
看起来像这样:
指数 | Score_1 | Score_2 |
---|---|---|
Family_1 | 123 | 456 |
Family_2 | 789 | 1011 |
df2
看起来像这样:
指数 | Score_1 | Score_2 |
---|---|---|
Family_1 | 一个 | B |
Family_2 | C | D |
我想制作第三个数据帧,从中获取每个 n * n 个单元格,并将其与相应 n * n 个单元格的内容连接起来,并制作第三个数据帧,如下所示:df1
df2
指数 | Score_1 | Score_2 |
---|---|---|
Family_1 | 答:123 | 乙:456 |
Family_2 | C:789 | 分:1011 |
只是为了确保:一个表有字符串,另一个表有数字,但我想做字符串连接,所以使用是必要的。str()
pd.concat()
像这样连接整个数据帧:
指数 | Score_1 | Score_2 | Score_1 | Score_2 |
---|---|---|---|---|
Family_1 | 一个 | B | 123 | 456 |
Family_2 | C | D | 789 | 1011 |
我正在尝试叠加单元格。
我试着从头开始做,大致是这样的:zip
intertuples
for i,j in zip(df1.itertuples(),df2.itertuples()):
n=1
while n < len(i):
print(i[n], ":", j[n])
n = n + 1
print('\n')
其输出如下:
答:123
乙:456
C:789
分:1011
我想我可以将其重新路由到字典或中间文件并从那里进行重塑,但这似乎有点笨拙。有没有更有效的方法可以做到这一点?
答:
2赞
mozway
9/13/2022
#1
您可以暂时将“Index”设置为索引,转换为字符串,然后:add
out = (df2
.set_index('Index') # skip if already index
.add(':'+df1.set_index('Index').astype(str))
.reset_index() # skip if already index
)
输出:
Index Score_1 Score_2
0 Family_1 A:123 B:456
1 Family_2 C:789 D:1011
如果“索引”已经是索引:
out = df2.add(':'+df1.astype(str))
输出:
Score_1 Score_2
Index
Family_1 A:123 B:456
Family_2 C:789 D:1011
评论