我有一个为 python 2 编译的谷歌协议缓冲区,我正在尝试将它移植到 python 3。不幸的是,我在任何地方都找不到我用来生成编译的协议缓冲区的 proto 文件。如何恢复 proto 文件,以便我可以为 python 3 编译一个新文件。我不知道使用了哪些 proto 版本,我所拥有的只是要在 python 2.6 上运行的 .py 文件。
以这种方式合并到 python 数据帧的最快方法是什么?我有两个具有相似结构的数据框(都有一个主键 id 和一些值列)。我想要做的是根据id合并两个数据框。有没有什么方法可以基于 pandas 操作来做到这一点?我现在的实现方式如下:
import pandas as pd
a = pd.DataFrame({'id': [1,2,3], 'letter': ['a', 'b', 'c']})
b = pd.DataFrame({'id': [1,3,4], 'letter': ['A', 'C', 'D']})
a_dict = {e[id]: e for e in a.to_dict('record')}
b_dict = {e[id]: e for e in b.to_dict('record')}
c_dict = a_dict.copy()
c_dict.update(b_dict)
c = pd.DataFrame(list(c.values())
Run Code Online (Sandbox Code Playgroud)
这里,c 相当于
pd.DataFrame({'id': [1,2,3,4], 'letter':['A','b', 'C', 'D']})
id letter
0 1 A
1 2 b
2 3 C
3 4 D
Run Code Online (Sandbox Code Playgroud)