菜鸟又来求助 pandas 了

查看 48|回复 2
作者:ohayoo   
大佬们,我现在有两个 DataFrame 需要横向合并,问了套壳免费的 chatgpt 和文心一言都没有搞定,跪求大佬们帮忙看看。
其中 df1 长这样:
[td][/td]
[td]id[/td]
[td]regions[/td]
[td]isp[/td]
[td]answers[/td]
1
1
广东
电信
xxx.xxx.com.
xxx.xxx.xxx.com.
1.1.1.1 中国深圳电信
2.2.2.2 中国深圳电信
2
2
上海
电信
xxx.xxx.com.
xxx.xxx.xxx.com.
3.3.3.3 中国上海电信
4.4.4.4 中国上海电信
df2 长这样
[td]Content-Type[/td]
[td]Content-Length[/td]
[td]Connection[/td]
[td]Accept-Ranges[/td]
[td]Age[/td]
[td]ip[/td]
[td]status_code[/td]
text/plain
15310871
keep-alive
bytes
13
1.1.1.1
200
text/plain
15310871
keep-alive
bytes
0
2.2.2.2
403
text/plain
4668490
keep-alive
bytes
20
3.3.3.3
200
text/plain
15310871
keep-alive
bytes
25
4.4.4.4
200
想要合并成这样(由于太长了影响观看,中间有些列我编辑 v2 的时候就删掉了):
[td]answers[/td]
[td]ip[/td]
[td]Content-Length[/td]
[td]Age[/td]
[td]status_code[/td]
xxx.xxx.com.
xxx.xxx.xxx.com.
1.1.1.1 中国深圳电信
2.2.2.2 中国深圳电信
1.1.1.1
2.2.2.2
15310871
15310871
13
0
200
403
xxx.xxx.com.
xxx.xxx.xxx.com.
3.3.3.3 中国上海电信
4.4.4.4 中国上海电信
3.3.3.3
4.4.4.4
4668490
15310871
20
25
200
200
合并的要求是 df1 里面的 answers 列里面的值如果包含了 df2 里面 ip 列的值,就合并到一行里面来
我现在 df1 里面 answers 列的每个值,是用的\n 换行符连接的字符串,然后合并之后列,也希望是\n 连接,比如 1.1.1.1\n2.2.2.2 ,这样到时候输出到表格就和 v2 这里展示的一样了
上面的描述不知道把需求表达清楚了没,感觉这个需求有点变态,我用 merge 尝试了好久没搞定,跪求大佬帮忙看看
Codelike   
用正则算出 ansers 里面的 ip ,找 df2 中所有相同的 ip ,手动拼一下,组一行
Qusic   
不如先 explode 拆开,join 完了再按需要合并回去
您需要登录后才可以回帖 登录 | 立即注册

返回顶部