python - 在列中字典内的值上删除数据框上的重复项

标签 python pandas dataframe

我在使用正确的 Pandas 函数在其列 lugar 中的 dict 中删除重复值的数据框中的行时遇到问题。
enter image description here
这是数据框的数据:

{'calculado': {73683: '2021-05-27 00:43:46',
  83767: '2021-05-27 00:43:46',
  103395: '2021-05-27 00:43:46',
  105314: '2021-05-27 00:43:46',
  116555: '2021-05-27 00:43:46',
  120764: '2021-05-27 00:43:46',
  120892: '2021-05-27 00:43:46',
  122760: '2021-05-27 00:43:46',
  124269: '2021-05-27 00:43:46',
  125707: '2021-05-27 00:43:46'},
 'geom': {73683: '17.649999999999995,-93.65',
  83767: '15.55,-93.25',
  103395: '11.45,-98.45',
  105314: '11.049999999999997,-98.55',
  116555: '8.75,-78.45',
  120764: '7.849999999999997,-89.54999999999998',
  120892: '7.849999999999997,-76.75',
  122760: '7.449999999999998,-81.95',
  124269: '7.149999999999999,-75.04999999999998',
  125707: '6.849999999999998,-75.25'},
 'lat': {73683: 17.649999999999995,
  83767: 15.55,
  103395: 11.45,
  105314: 11.049999999999997,
  116555: 8.75,
  120764: 7.849999999999997,
  120892: 7.849999999999997,
  122760: 7.449999999999998,
  124269: 7.149999999999999,
  125707: 6.849999999999998},
 'lon': {73683: -93.65,
  83767: -93.25,
  103395: -98.45,
  105314: -98.55,
  116555: -78.45,
  120764: -89.54999999999998,
  120892: -76.75,
  122760: -81.95,
  124269: -75.04999999999998,
  125707: -75.25},
 'lugar': {73683: {'distancia': 12.55,
   'mensaje': '13 kms. de Huimanguillo, Tabasco, México',
   'nombre': 'Huimanguillo, Tabasco, México',
   'pais': 'mx'},
  83767: {'distancia': 16.74,
   'mensaje': '17 kms. de Pijijiapan, Chiapas, 30540, México',
   'nombre': 'Pijijiapan, Chiapas, 30540, México',
   'pais': 'mx'},
  103395: 'Mar abierto',
  105314: 'Mar abierto',
  116555: {'distancia': 6.7,
   'mensaje': '7 kms. de Río Congo Arriba, Distrito Santa Fe, Darién, Panamá',
   'nombre': 'Río Congo Arriba, Distrito Santa Fe, Darién, Panamá',
   'pais': 'pa'},
  120764: 'Mar abierto',
  120892: {'distancia': 5.83,
   'mensaje': '6 kms. de Veraguas, Panamá',
   'nombre': 'Veraguas, Panamá',
   'pais': 'co'},
  122760: {'distancia': 100.26,
   'mensaje': '100 kms. de Veraguas, Panamá',
   'nombre': 'Veraguas, Panamá',
   'pais': 'pa'},
  124269: {'distancia': 12.09,
   'mensaje': '12 kms. de Anorí, Nordeste, Antioquia, Región Andina, 052857, Colombia',
   'nombre': 'Anorí, Nordeste, Antioquia, Región Andina, 052857, Colombia',
   'pais': 'co'},
  125707: {'distancia': 4.03,
   'mensaje': '4 kms. de Guadalupe, Norte, Antioquia, Región Andina, Colombia',
   'nombre': 'Guadalupe, Norte, Antioquia, Región Andina, Colombia',
   'pais': 'co'}},
 'valor': {73683: 198,
  83767: 198,
  103395: 197,
  105314: 198,
  116555: 198,
  120764: 198,
  120892: 198,
  122760: 198,
  124269: 196,
  125707: 198},
 'variable': {73683: 'T',
  83767: 'T',
  103395: 'T',
  105314: 'T',
  116555: 'T',
  120764: 'T',
  120892: 'T',
  122760: 'T',
  124269: 'T',
  125707: 'T'}}
如您所见,卢格列有一个字典,其中一个键是 名称 在这种情况下,值:Veraguas,Panamá 是重复的,我想删除重复的数据帧行,并为具有字典和键的行的每个名称保留一行 卢格柱子。
我尝试过的一种方法是使用键的值创建一个新列,然后运行 ​​drop_duplicates 但我无法获取列内的值。但我可以像这样在第一行得到它df_asc['lugar'].iloc[0]['nombre'] -> Huimanguillo,塔巴斯科,墨西哥
有没有办法在不循环 df 手动执行此操作的情况下执行此操作?我对 Python 和 Pandas 真的很陌生。
编辑:预期结果我转换为 csv 以便能够在电子表格中删除,因为我无法用 Pandas 来做...
enter image description here

最佳答案

通过 loc 的选项+ duplicated + isna :

s = df['lugar'].str['nombre']
df.loc[~s.duplicated() | s.isna()]
                  calculado  ... variable
73683   2021-05-27 00:43:46  ...        T
83767   2021-05-27 00:43:46  ...        T
103395  2021-05-27 00:43:46  ...        T
105314  2021-05-27 00:43:46  ...        T
116555  2021-05-27 00:43:46  ...        T
120764  2021-05-27 00:43:46  ...        T
120892  2021-05-27 00:43:46  ...        T
124269  2021-05-27 00:43:46  ...        T
125707  2021-05-27 00:43:46  ...        T

[9 rows x 7 columns]

关于python - 在列中字典内的值上删除数据框上的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67714397/

相关文章:

python - 如何处理数据库中的用户评论

python - Django - 保存图像的多个版本

python - Pandas:将日期时间对象分配给时间间隔

python - 如何可逆地将 Pandas 数据帧存储到磁盘或从磁盘加载

r - 如何将回归的输出保存在R表中

python - 如何写回在Python中打开的csv文件

python - 如何获得 1 :1 corresponding matches using sklearn KNearest neighbors

python - 用列值更新 pandas groupby group

python - 如何过滤掉数据框中格式错误的单元格python

python - 通过另一个 DataFrame 中的行将新列映射到 DataFrame