2024-05-13 18:43:40 发布
网友
在使用GoogleAPI之后,我试图从json输出中提取某些值。在整个输出中,我希望根据定义的标准提取特定的值。我正在使用的桌子看起来像这样-
我希望我的mutate new columns及其结果表为:
使用R(首选)或Python,解析值列并提取这些值的好方法是什么
任何帮助都将不胜感激,谢谢!我的大多数结果都是使用excel使用 TRIM和 MID函数,这并没有给我想要的结果
TRIM
MID
这是一个使用Python的可行解决方案
使用pd.Dataframe()将API输出转换为普通df
pd.Dataframe()
使用apply(pd.Series)将“value”列拆分为单独的列
apply(pd.Series)
将拆分的列与前面的df合并为concat()
concat()
用drop()删除无用列
drop()
import pandas as pd api_output = {'index':[1,2] , 'value': [{'city_display_city_name_fg': True, 'subMarket_id': 1631, 'subMarket_tx': 'Southern NH', 'market_id': 644, 'market_tx': 'Southern NH', 'metro_id': 37}, {'city_display_city_name_fg': False, 'subMarket_id': 2464, 'subMarket_tx': 'north NH', 'market_id': 541, 'metro_id': 57}]} # convert entire API output into pandas df api_df = pd.DataFrame(api_output) # split "value" to columns, concat with previous api_df, drop useless columns final_df = pd.concat([api_df, api_df['value'].apply(pd.Series)], axis=1).drop(['city_display_city_name_fg','subMarket_id','subMarket_tx'], axis=1)
您可以从字符串中提取所有值,并只保留所需的列
library(dplyr) library(tidyr) df %>% mutate(value = gsub('[{}]', '', value)) %>% separate_rows(value, sep = ',\\s*') %>% separate(value, c('name', 'value'), sep = ':\\s*') %>% pivot_wider(names_from = name, values_from = value) # index city_display_city_name_fg subMarket_id subMarket_tx market_id market_tx metro_id # <int> <chr> <chr> <chr> <chr> <chr> <chr> #1 1 True 1631 Southern NH 644 Southern NH 37 #2 2 False 2464 north NH 541 NA 57
数据
如果以可复制的格式提供数据,则更容易提供帮助
df <- structure(list(index = 1:2, value = c("{city_display_city_name_fg: True, subMarket_id: 1631, subMarket_tx: Southern NH, market_id: 644, market_tx: Southern NH, metro_id: 37}", "{city_display_city_name_fg: False, subMarket_id: 2464, subMarket_tx: north NH, market_id: 541, metro_id: 57}" )), row.names = c(NA, -2L), class = "data.frame")
这是一个使用Python的可行解决方案
逻辑:
使用
pd.Dataframe()
将API输出转换为普通df使用
apply(pd.Series)
将“value”列拆分为单独的列将拆分的列与前面的df合并为
concat()
用
drop()
删除无用列代码:
结果:
您可以从字符串中提取所有值,并只保留所需的列
数据
如果以可复制的格式提供数据,则更容易提供帮助
相关问题 更多 >
编程相关推荐