Python 数据帧拆分和转置,使最左边的值成为标头
我有一个带有成对数据的dataframe列,LHS是列名,RHS是列值:Python 数据帧拆分和转置,使最左边的值成为标头,python,pandas,dataframe,split,Python,Pandas,Dataframe,Split,我有一个带有成对数据的dataframe列,LHS是列名,RHS是列值: display(df_Normal.head(1)) Data 0 {'MktUMidInit': 'a', 'ProdTemplateName': '', 'ForwardPriceDrop': '99.10', 'CoverPrice': '99.20 'CustParentCdr': '', ...} 期望输出: Data MktUMidInit ProdTemplateName ForwardPriceDro
display(df_Normal.head(1))
Data
0 {'MktUMidInit': 'a', 'ProdTemplateName': '', 'ForwardPriceDrop': '99.10', 'CoverPrice': '99.20 'CustParentCdr': '', ...}
期望输出:
Data
MktUMidInit ProdTemplateName ForwardPriceDrop CoverPrice CustParentCdr...
a 99.10 99.20
每行有50多对数据
df.head(1).to_dict()
{'Data': {0: {'Action': 'CustAcceptedQuote',
'AllQ': '104.643',
'AutoNegDealerMidValue': '0',
'AutoNegDealerSpread': '0',
'AutoNegDealerValue': '-1',
'ClearingChannel': '',
'ClearingCode': '',
'ClearingHouse': '',
'ClearingMember': '',
'ClearingModel': '',
'CneResultMessage': '',
'Code': 'AU3TB0000036',
'Commission': '', }}}
我想先在逗号上分开,然后再对折。“拆分”命令似乎对数据无效:
dfSplit = df_Normal['Data'].str.split(',', 1, expand=True)
display(dfSplit.head(1))
NaN
对于traspose,我查看了df.set_索引,但这是错误的。有什么建议吗 看起来您有想要规范化为数据帧的JSON数据。有一个函数可以做到这一点:
from pandas.io.json import json_normalize
json_normalize(df.Data.tolist())
或者,您可以使用pd.DataFrame.from_records
:
pd.DataFrame.from_records(df.Data.tolist())
你能打印
df.head(5).to_dict()
并将其作为文本粘贴到你的问题中吗?问题已更新。是@cᴏʟᴅsᴘᴇᴇᴅ 来自pymongo的JSON文件。谢谢,m工作得很好!!
Action AllQ AutoNegDealerMidValue AutoNegDealerSpread \
0 CustAcceptedQuote 104.643 0 0
AutoNegDealerValue ClearingChannel ClearingCode ClearingHouse \
0 -1
ClearingMember ClearingModel CneResultMessage Code Commission
0 AU3TB0000036