簡體   English   中英

pandas DataFrame 柱子不規則的零件如何更換或拆除?

[英]How to replace or remove parts from columns in pandas DataFrame which are irregular?

我的pandas DataFrame 里的一個專欄里有很不規則的表達。 我想刪除除坐標以外的所有內容。 但是,我不能只使用替換或刪除 function,因為我要刪除的部分在每一列中都是不同的。 有沒有辦法只選擇我真正想要使用的部分字符串?

一個單元格如下所示:

 {'is_geometry': True, 'configuration': 'technologies', 'additional_translations': {}, 'key': 'Map', 'value': '{"type":"FeatureCollection","features":[{"type":"Feature","id":1549869006355,"geometry":{"type":"Point","coordinates":[67.91225703380735,34.69585762863356]},"properties":null}]}', 'map_url': '/en/technologies/view/technologies_1723/map/', 'template': 'raw'}

其中 id 和 map_url 總是不同的。 在這個例子中,我只想 [67.91225703380735,34.69585762863356]。 此外,有沒有辦法改變這兩個值,以便我擁有 [34.69585762863356,67.91225703380735]?

我不確定你到底想要什么,但假設你的數據框列包含與你的示例類似的字典,這應該有效:

import ast
import json
df['nums'] = df.loc[df['tech_map'].notna(), 'tech_map'].astype(str).apply(ast.literal_eval).str['value'].apply(json.loads).str['features'].str[0].str['geometry'].str['coordinates'].str[::-1]

兩個注意事項: - 以上基本上等同於為每一行執行json.loads(row['value'])['features'][0]['geometry']['coordinates'][::-1] - [::-1]反轉列表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM