繁体   English   中英

读取存储在文本文件中的字典并转换为pandas数据框

Reading dictionary stored on text file and convert to pandas dataframe [duplicate]

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个文本文件,其中包含一系列字典形式的数据。 我想在熊猫中读取和存储为数据框。 我将如何阅读。 我读了pd.csv,但它没有给我数据框。 有人可以帮我吗? 您可以在此处下载文本文件

谢谢,

齐普

2 个回复

您可以在将数据读取为字符串后将数据转换为json,然后使用pandas.read_json()将json转换为数据pandas.read_json()

例:

import json
from pandas.io.json import json_normalize

f = open("file.txt", "w+")
contents = f.read()
contents = contents.replace("\n", "")
json_data = json.loads(contents)
df = json_normalize(json.loads(data))

之后,您应该将数据作为数据框。

希望这可以帮助!

问题是您有一个嵌套的json。 尝试改用json_normalize:

import requests     #<-- requests library helps us handle http-requests
import pandas as pd

id_ = '1DbfQxBJKHvWO2YlKZCmeIN4al3xG8Wq5'
url = 'https://drive.google.com/uc?authuser=0&id={}&export=download'.format(id_)
r = requests.get(url)

df = pd.io.json.json_normalize(r.json())
print(df.columns)

从硬盘驱动器,然后json_normalize如要读取字典对象而不是路径:

import pandas as pd
import json

with open('myfile.json') as f:
    jsonstr = json.load(f)

df = pd.io.json.json_normalize(jsonstr)

返回值:

Index(['average.accelerations', 'average.aerialDuels', 'average.assists',
       'average.attackingActions', 'average.backPasses', 'average.ballLosses',
       'average.ballRecoveries', 'average.corners', 'average.crosses',
       'average.dangerousOpponentHalfRecoveries',
       ...
       'total.successfulLongPasses', 'total.successfulPasses',
       'total.successfulPassesToFinalThird', 'total.successfulPenalties',
       'total.successfulSmartPasses', 'total.successfulThroughPasses',
       'total.successfulVerticalPasses', 'total.throughPasses',
       'total.verticalPasses', 'total.yellowCards'],
      dtype='object', length=171)

另一个想法是将嵌套对象存储在一个Series中(并且您可以让字典保存该系列)。

dfs = {k: pd.Series(v) for k,v in r.json().items()}    
print(dfs.keys()) 
# ['average', 'seasonId', 'competitionId', 'positions', 'total', 'playerId', 'percent'])
print(dfs['percent'])

返回值:

aerialDuelsWon                   23.080
defensiveDuelsWon                18.420
directFreeKicksOnTarget           0.000
duelsWon                         33.470
fieldAerialDuelsWon              23.080
goalConversion                   22.581
headShotsOnTarget                 0.000
offensiveDuelsWon                37.250
penaltiesConversion               0.000
shotsOnTarget                    41.940
...
yellowCardsPerFoul               12.500
dtype: float64

数据只有一个条目。

2 将文本文件读取到pandas数据帧

我正在处理没有标题的事件日志文件。 我想把这些数据读到一个pandas数据帧,我尝试了几种方法,但无法获得数据解析。 我希望你们中的一些人可能有解决方案。 如果你能在这方面帮助我,我感激不尽。 谢谢 以下是文本文件中的示例数据。 我添加了额外的空间,让您知道这些是文本文件中的 ...

5 将文本文件转换为 Pandas 数据框

我想从文本文件创建一个数据框。 我从网站上抓取了一些数据并将其写入 .txt 文件。 有 10 个“列”,如文本文件的前 10 行所示。 任何人都可以帮助我以 Pandas 数据帧格式将行分隔到相应的列中吗? 非常感激! 以下是文本文件的示例。 我希望前 10 行是列名,随后的行在各自的列下。 ...

6 将字典转换为 Pandas 数据框

我有一本看起来像这样的字典: 我想创建一个以产品为索引的数据框,列名的范围应为 1 - 10 000,如果与产品关联的值列表具有数字,则应将其标记为 1 或 True相应编号的列。 整个字典有 80 个产品,每个产品都与一个从 0 到最多 50 个数字的列表相关联。 这些数字的范围在 1 到 ...

9 将熊猫数据框转换为字典

我有一个名为past_trend的熊猫数据框,看起来像这样 我正在尝试将其转换为看起来像这样的字典 日期格式不必严格地与上面显示的格式相同,也可以原样。 当我使用to_dict函数时,得到的输出看起来像这样 所以我将组类型(mo吟声,谢谢声)转换为列表,并尝试对其进行迭 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM