python - 在熊猫中,如何从另一个更小且具有相同特征的数据框更新数据框?
问题描述
在 python 3 和 pandas 中,我有两个具有相同列的数据框
df_one.info()
<class 'pandas.core.frame.DataFrame'>
uf 8576 non-null object
cargo 8576 non-null object
sequencial 8576 non-null int64
numero_urna 8576 non-null object
nome_completo 8576 non-null object
nome_urna 8576 non-null object
cpf 8576 non-null object
e_mail 8576 non-null object
situacao_candidatura 8576 non-null object
df_two.info()
uf 102 non-null object
cargo 102 non-null object
sequencial 102 non-null int64
numero_urna 102 non-null object
nome_completo 102 non-null object
nome_urna 102 non-null object
cpf 102 non-null object
e_mail 102 non-null object
situacao_candidatura 102 non-null object
数据框 df_one 包含有关人员的历史信息。有些人的信息会随着时间而变化。“cpf”列是一个识别码
数据框 df_two 较小。它是一个仅包含人员信息更改的文件。还有“cpf”列
我需要用收到的“df_two”更新“df_one”信息
也就是说,两个数据帧中具有相同“cpf”的所有行都需要更新——“df_one”需要具有“df_two”的内容。但其他行必须保持不变
请问,有谁知道我该怎么做?
df_one 的第一行示例:
{'uf': {0: 'AC', 1: 'AC', 2: 'AC', 3: 'AC', 4: 'AC'},
'cargo': {0: 'DEPUTADO FEDERAL',
1: 'DEPUTADO FEDERAL',
2: 'DEPUTADO FEDERAL',
3: 'DEPUTADO FEDERAL',
4: 'DEPUTADO FEDERAL'},
'sequencial': {0: 10000600207,
1: 10000602510,
2: 10000602299,
3: 10000608399,
4: 10000600222},
'numero_urna': {0: '1712', 1: '2222', 2: '1277', 3: '1331', 4: '1700'},
'nome_completo': {0: 'DANIELA PAIVA DE OLIVEIRA',
1: 'ANTÔNIA LUCILÉIA CRUZ RAMOS CÂMARA',
2: 'CLEIDE MARIA FERREIRA DE ARAUJO',
3: 'LEONARDO CUNHA DE BRITO',
4: 'MICHELA BATISTA LACERDA'},
'nome_urna': {0: 'DANIELA PAIVA',
1: 'ANTÔNIA LÚCIA',
2: 'CLEIDE ARAÚJO DA SAÚDE',
3: 'LEO DE BRITO',
4: 'MICHELA LACERDA'},
'cpf': {0: '52614174220',
1: '50791524272',
2: '30864372272',
3: '63182246291',
4: '51378353234'},
'e_mail': {0: 'PSL17.AC@GMAIL.COM',
1: 'ANTONIALUCIACAMARAPR22@GMAIL.COM',
2: 'PDTACRE12@GMAIL.COM',
3: 'LEODEBRITOACRE@GMAIL.COM',
4: 'PSL17.AC@GMAIL.COM'},
'situacao_candidatura': {0: 'AGUARDANDO JULGAMENTO',
1: 'AGUARDANDO JULGAMENTO',
2: 'AGUARDANDO JULGAMENTO',
3: 'AGUARDANDO JULGAMENTO',
4: 'AGUARDANDO JULGAMENTO'}}
df_two 的第一行示例:
{'uf': {0: 'AC', 1: 'AC', 2: 'AC', 3: 'AC', 4: 'AC'},
'cargo': {0: 'DEPUTADO FEDERAL',
1: 'DEPUTADO FEDERAL',
2: 'DEPUTADO FEDERAL',
3: 'DEPUTADO FEDERAL',
4: 'DEPUTADO FEDERAL'},
'sequencial': {0: 10000600207,
1: 10000602510,
2: 10000602299,
3: 10000608399,
4: 10000600222},
'numero_urna': {0: '1712', 1: '2222', 2: '1277', 3: '1331', 4: '1700'},
'nome_completo': {0: 'DANIELA PAIVA DE OLIVEIRA',
1: 'ANTÔNIA LUCILÉIA CRUZ RAMOS CÂMARA',
2: 'CLEIDE MARIA FERREIRA DE ARAUJO',
3: 'LEONARDO CUNHA DE BRITO',
4: 'MICHELA BATISTA LACERDA'},
'nome_urna': {0: 'DANIELA PAIVA',
1: 'ANTÔNIA LÚCIA',
2: 'CLEIDE ARAÚJO DA SAÚDE',
3: 'LEO DE BRITO',
4: 'MICHELA LACERDA'},
'cpf': {0: '52614174220',
1: '50791524272',
2: '30864372272',
3: '63182246291',
4: '51378353234'},
'e_mail': {0: 'PSL17.AC@GMAIL.COM',
1: 'ANTONIALUCIACAMARAPR22@GMAIL.COM',
2: 'PDTACRE12@GMAIL.COM',
3: 'LEODEBRITOACRE@GMAIL.COM',
4: 'PSL17.AC@hotmail.COM'},
'situacao_candidatura': {0: 'AGUARDANDO JULGAMENTO',
1: 'AGUARDANDO JULGAMENTO',
2: 'RENUNCIA',
3: 'AGUARDANDO JULGAMENTO',
4: 'CANCELADO'}}
-/-
我按照以下步骤操作:
1 - 我加载了 8,576 行的历史数据帧 df_one
2 - 我加载了昨天 27 日发送的更新数据帧,包含 25 行更新,df_two
3 - df_one.update (df_two)
4 - 我将 df_one 保存为文件 - df_currentversion.csv - 我检查了 25 个新行
5 - 我上传了 8,576 行的更新 df_currentversion 数据帧
6 - 我加载了更新发送的新数据帧,今天 28,86 行更新,df_two
7 - df_currentversion.update (df_two)
8 - 86 行已更新,但之前已更新的 25 行已恢复到第 1 步中的方式
解决方案
推荐阅读
- c# - UWP DataGrid 单元格中的 UWP ColorPickerButton 不会被选中
- r - yacca cca 包:cor(x, o$canvarx, use = use) 中的错误:'y' 必须是数字
- json - 试图附加一个json
- android - 如何在 FCM 中指定发件人 ID?
- git - Gitlab - 提交的作者
- php - 使用 TCPDF 的条码
- css - 单独使用 CSS 或 SASS
- visual-studio-code - 在 VS Code 中删除特定的红色/黄色下划线(错误下划线)
- javascript - 谷歌浏览器沙盒网页
- flutter - Flutter Web: TextFormField shows another suffixIcon on Microsoft Edge