【发布时间】:2017-08-27 14:26:06
【问题描述】:
我有一个从 json url 创建的数据框。它有两列,bpi 和 time。 bpi 值是前三行的字典,时间值是 NaN。最后三行是 bpi 的 NaN 和时间的 timedate 值。我想返回第 3 行第 1 列和第 4 行第 2 列。复杂的部分是从第 3 行第 1 列中,我只想从字典中选择特定的键、值对。我怎样才能做到这一点?
[in] print(btc)
[out]
bpi \
EUR {'code': 'EUR', 'symbol': '€', 'rate': '3...
GBP {'code': 'GBP', 'symbol': '£', 'rate': '...
USD {'code': 'USD', 'symbol': '$', 'rate': '4,...
updated NaN
updatedISO NaN
updateduk NaN
time
EUR NaN
GBP NaN
USD NaN
updated Aug 27, 2017 14:07:00 UTC
updatedISO 2017-08-27T14:07:00+00:00
updateduk Aug 27, 2017 at 15:07 BST
我只想要美元字典中的rate,加上time 列中的updated 值。
每个日期值的输出应为一行 - 后跟一列列出 rates
这是使用pandas .to_dict修改df时的输出
[in]
btc_dict = btc.to_dict()
print(btc_dict)
[out]
{'bpi': {'EUR': {'code': 'EUR', 'symbol': '€', 'rate': '3,671.8281', 'description': 'Euro', 'rate_float': 3671.8281}, 'GBP': {'code': 'GBP', 'symbol': '£', 'rate': '3,397.8616', 'description': 'British Pound Sterling', 'rate_float': 3397.8616}, 'USD': {'code': 'USD', 'symbol': '$', 'rate': '4,378.8400', 'description': 'United States Dollar', 'rate_float': 4378.84}, 'updated': nan, 'updatedISO': nan, 'updateduk': nan}, 'time': {'EUR': nan, 'GBP': nan, 'USD': nan, 'updated': 'Aug 27, 2017 14:07:00 UTC', 'updatedISO': '2017-08-27T14:07:00+00:00', 'updateduk': 'Aug 27, 2017 at 15:07 BST'}}
【问题讨论】:
-
如果您能说出您希望输出的样子会很有帮助
-
好的,我添加了所需的输出格式 - 但我无法显示它应该是什么样子的实际描述。
-
您可以打印
df.to_dict()并粘贴到这里吗?您的数据不适合复制粘贴,我们无法使用它。 -
@cᴏʟᴅsᴘᴇᴇᴅ 我编辑了我的问题以包含使用
dt.to_dict()转换数据帧时的输出 -
您能解释一下您希望这些值在输出中的样子吗?
标签: python pandas dictionary dataframe