第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將json數(shù)據(jù)幀轉(zhuǎn)換為普通數(shù)據(jù)幀?

如何將json數(shù)據(jù)幀轉(zhuǎn)換為普通數(shù)據(jù)幀?

拉丁的傳說 2023-12-12 21:14:35
我有一個數(shù)據(jù)框,里面有很多 json 數(shù)據(jù)。例如 :{"serial": "000000001fb105ea", "sensorType": "acceleration", "data": [1603261123.328814, 0.171875, -0.9609375, 0.0234375]}{"serial": "000000001fb105ea", "sensorType": "acceleration", "data": [1603261125.0605137, 0.0859375, -0.984375, 0.0]}{"serial": "000000001fb105ea", "sensorType": "strain", "data": [1603261126.3532753, 0.9649793604217437]}{"serial": "000000001fb105ea", "sensorType": "acceleration", "data": [1603261127.6988888, 0.0390625, -1.0, 0.125]}{"serial": "000000001fb105ea", "sensorType": "acceleration", "data": [1603261128.8530502, 0.078125, -0.9921875, 0.0]}有兩種類型的數(shù)據(jù):應(yīng)變傳感器和加速度傳感器。我想解析這些json數(shù)據(jù)并轉(zhuǎn)換為正常形式。我只需要 json 對象的數(shù)據(jù)部分。結(jié)果我應(yīng)該為數(shù)據(jù)中的每個值都有 4 列。Date: 21.20.2020:09:18:46    x:0.171875     y:-0.9609375    z:0.0234375我嘗試了 json_normalize 但出現(xiàn)此錯誤。AttributeError: 'str' object has no attribute 'itervalues'如何將數(shù)據(jù)部分解析為 4 列數(shù)據(jù)框?
查看完整描述

1 回答

?
海綿寶寶撒

TA貢獻1809條經(jīng)驗 獲得超8個贊

如果輸入數(shù)據(jù)在json文件中使用:


cols = ['Date','x','y','z']

df = pd.DataFrame(pd.read_json('json.json', lines=True)['data'].tolist(), columns=cols)

df['Date'] = pd.to_datetime(df['Date'], unit='s')

print (df)

                           Date         x         y         z

0 2020-10-21 06:18:43.328814030  0.171875 -0.960938  0.023438

1 2020-10-21 06:18:45.060513735  0.085938 -0.984375  0.000000

2 2020-10-21 06:18:46.353275299  0.964979       NaN       NaN

3 2020-10-21 06:18:47.698888779  0.039062 -1.000000  0.125000

4 2020-10-21 06:18:48.853050232  0.078125 -0.992188  0.000000

如果輸入DataFrame帶有列col:


cols = ['Date','x','y','z']

df = pd.DataFrame(pd.json_normalize(df['col'])['data'].tolist(), columns=cols)

df['Date'] = pd.to_datetime(df['Date'], unit='s')

print (df)

                           Date         x         y         z

0 2020-10-21 06:18:43.328814030  0.171875 -0.960938  0.023438

1 2020-10-21 06:18:45.060513735  0.085938 -0.984375  0.000000

2 2020-10-21 06:18:46.353275299  0.964979       NaN       NaN

3 2020-10-21 06:18:47.698888779  0.039062 -1.000000  0.125000

4 2020-10-21 06:18:48.853050232  0.078125 -0.992188  0.000000

編輯:


就個人而言,像這樣保存 csv.xls并不是一個好主意,因為這樣會read_excel引發(fā)奇怪的錯誤,但您可以使用:


import ast


df = pd.read_csv('15-10-2020-OO.xls')


cols = ['Date','x','y','z']


data = [x['data'] for x in df['Data'].apply(ast.literal_eval)]

df = pd.DataFrame(data, columns=cols)

df['Date'] = pd.to_datetime(df['Date'], unit='s')

print (df)

                              Date         x         y         z

0    2020-10-15 07:21:16.159236193  0.085938 -0.972656  0.003906

1    2020-10-15 07:21:17.597931385  0.089844 -0.968750  0.003906

2    2020-10-15 07:21:18.838171959  0.089844 -0.972656  0.003906

3    2020-10-15 07:21:20.338105917  0.085938 -0.972656  0.003906

4    2020-10-15 07:21:21.768864155  0.089844 -0.984375  0.003906

                           ...       ...       ...       ...

8457 2020-10-15 08:59:57.907007933  0.085938 -0.972656  0.003906

8458 2020-10-15 08:59:58.371274233  0.089844 -0.976562  0.003906

8459 2020-10-15 08:59:58.833237648  0.085938 -0.976562  0.003906

8460 2020-10-15 08:59:59.313337088  1.517057       NaN       NaN

8461 2020-10-15 08:59:59.863240004  0.089844 -0.968750  0.007812


[8462 rows x 4 columns]


查看完整回答
反對 回復 2023-12-12
  • 1 回答
  • 0 關(guān)注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號