我有一个类似于下面的数据帧
我想删除文本并仅从该数据帧中的每个列保留数字
像这样的预期输出
到目前为止,我已经试过了
import json
import requests
import pandas as pd
URL = 'https://xxxxx.com'
req = requests.get(URL,auth=('xxx', 'xxx') )
text_data= req.text
json_dict= json.loads(text_data)
df = pd.DataFrame.from_dict(json_dict["measurements"])
cols_to_keep =['source','battery','c8y_TemperatureMeasurement','time','c8y_DistanceMeasurement']
df_final = df[cols_to_keep]
df_final = df_final.rename(columns={'c8y_TemperatureMeasurement': 'Temperature Or T','c8y_DistanceMeasurement':'Distance'})
for col in df_final:
df_final[col] = [''.join(re.findall("\d*\.?\d+", item)) for item in df_final[col]]
您的代码缺少pdimport pandas并且无法访问数据,因为它需要凭据。你知道吗
您可以使用pandas.DataFrame.replace:
示例数据:
数据帧:
[^0-9.]替换所有非数字字符。你知道吗
输出:
编辑: 这里的问题实际上是关于嵌套的JSON,而不是替换数据帧中的值。上面的语句不起作用的原因是数据被保存为数据帧中的dict。但是,由于上述解决方案通常是正确的,所以它不会将其编辑掉。你知道吗
修订答案:
输出:
相关问题 更多 >
编程相关推荐