Python DataFrame中的字典,如何拆分列
我有一个Python DataFrame中的字典,如何拆分列,python,pandas,Python,Pandas,我有一个数据框,它由一个列('Vals')组成,这是一个字典。DataFrame大致如下所示: In[215]: fff Out[213]: Vals 0 {u'TradeId': u'JP32767', u'TradeSourceNam... 1 {u'TradeId': u'UUJ2X16', u'TradeSourceNam... 2 {u'TradeId': u'JJ35A
数据框
,它由一个列
('Vals')组成,这是一个字典
。DataFrame
大致如下所示:
In[215]: fff
Out[213]:
Vals
0 {u'TradeId': u'JP32767', u'TradeSourceNam...
1 {u'TradeId': u'UUJ2X16', u'TradeSourceNam...
2 {u'TradeId': u'JJ35A12', u'TradeSourceNam...
In[220]: fff['Vals'][100]
Out[218]:
{u'BrdsTraderBookCode': u'dffH',
u'Measures': [{u'AssetName': u'Ie0',
u'DefinitionId': u'6dbb',
u'MeasureValues': [{u'Amount': -18.64}],
u'ReportingCurrency': u'USD',
u'ValuationId': u'669bb'}],
u'SnapshotId': 12739,
u'TradeId': u'17304M',
u'TradeLegId': u'31827',
u'TradeSourceName': u'xxxeee',
u'TradeVersion': 1}
查看单个行
时,字典
如下所示:
In[215]: fff
Out[213]:
Vals
0 {u'TradeId': u'JP32767', u'TradeSourceNam...
1 {u'TradeId': u'UUJ2X16', u'TradeSourceNam...
2 {u'TradeId': u'JJ35A12', u'TradeSourceNam...
In[220]: fff['Vals'][100]
Out[218]:
{u'BrdsTraderBookCode': u'dffH',
u'Measures': [{u'AssetName': u'Ie0',
u'DefinitionId': u'6dbb',
u'MeasureValues': [{u'Amount': -18.64}],
u'ReportingCurrency': u'USD',
u'ValuationId': u'669bb'}],
u'SnapshotId': 12739,
u'TradeId': u'17304M',
u'TradeLegId': u'31827',
u'TradeSourceName': u'xxxeee',
u'TradeVersion': 1}
如何拆分
列
并创建一个新的数据框
,这样我就可以得到一个列带有TradeId
,另一个列带有MeasureValues
?以下是一种获取TradeId
和MeasureValues
的方法(使用上面两次示例行来说明迭代):
试试这个:
l=[]
for idx, row in df['Vals'].iteritems():
temp_df = pd.DataFrame(row['Measures'][0]['MeasureValues'])
temp_df['TradeId'] = row['TradeId']
l.append(temp_df)
pd.concat(l,axis=0)
我知道你已经口头描述了它,但是,你能展示一下你想要的输出样本吗。这将有助于澄清一些事情。你说“一行有TradeId,另一行有MeasureValues”-你是说两行分开?还是一行两列?或者一行多列表示可能的度量值我编辑了上面的文本以澄清:我指的是单独的列。请参阅更新的答案以解决布局澄清问题。这看起来不错,我如何简单地获取“MeasureValue”的值而不是[{'Amount'…?是否需要使用与
金额
对应的值调用列MeasureValues
,或者列
名称金额
有效?