![](/img/trans.png)
[英]Expand pandas dataframe column of dict into dataframe columns
[英]separate dict from list in pandas dataframe column into different dataframe columns
[{
"name":"game_time",
"type":"int",
"info":"millisecond count since start of game"
},
{
"name":"round",
"type":"int",
"info":"number of the current round when the even takes place or 0 if no round"
}]
我的嘗試:
規格:Dataframe 包含 args 列文件示例附在下面
specs['args'].apply(lambda x : x.split('},{')).to_frame()['args'].apply(pd.Series).apply(lambda x : x.str[2:])
specs['args'].apply(pd.Series)
我希望 ast 在這種情況下會對您有所幫助。這是解決方案
import pandas as pd
from ast import literal_eval
df = pd.read_csv('test_.csv', header = None)
df
Out[1]:
0
0 [{"name":"game_time","type":"int","info":"mill...
1 [{"name":"game_time","type":"int","info":"mill...
2 [{"name":"game_time","type":"int","info":"mill...
3 [{"name":"game_time","type":"int","info":"mill..
lst = [m for s in df[0] for m in literal_eval(s)]
lst
Out[2]:
[{'name': 'game_time',
'type': 'int',
'info': 'millisecond count since start of game'},
{'name': 'round',
'type': 'int',
'info': 'number of the current round when the event takes place or 0 if no round'},
{'name': 'level',
'type': 'int',
'info': 'number of the current level when the event takes place or 0 if no level'},
{'name': 'description',.......
pd.DataFrame.from_dict(lst)
Out[3]:
info name type
0 millisecond count since start of game game_time int
1 number of the current round when the event tak... round int
2 number of the current level when the event tak... level int
3 the text or description of the instruction description string
........
這是你想要的結果嗎?
如果您想要與您的代碼中相同的 output,這里是示例
lst1 = [literal_eval(s) for s in df[0]]
pd.DataFrame(lst1)
只需使用 dataframe 構造函數
data = [{
"name":"game_time",
"type":"int",
"info":"millisecond count since start of game"
},
{
"name":"round",
"type":"int",
"info":"number of the current round when the even takes place or 0 if no round"
}]
print(pd.DataFrame(data))
出去:
info name type
0 millisecond count since start of game game_time int
1 number of the current round when the even take... round int
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.