Python 如何在不使用pandas的情况下将平面文本文件导入数组?

Python 如何在不使用pandas的情况下将平面文本文件导入数组?,python,Python,我有一个文本文件数据库,其中包含了关于不同人群的信息,我需要使用Python对此进行一些分析。文件内容的格式如下所示: 名字:杰夫 姓:弗罗斯特 身份证号码:190293 身高:194 孩子们:乔治、玛丽 名字:海伦 姓氏:奥利弗 身份证号码:198895 身高:164 等等,大约还有1000人。我想把它变成一个数据结构,我可以使用它进行进一步的分析,但我不太确定如何使用它,因为它的格式与我以前使用的格式有很大的不同 我遇到的另一个问题是,对于没有孩子的人来说,这条线完全没有了(就像例子中的海

我有一个文本文件数据库,其中包含了关于不同人群的信息,我需要使用Python对此进行一些分析。文件内容的格式如下所示:

<代码>名字:杰夫 姓:弗罗斯特 身份证号码:190293 身高:194 孩子们:乔治、玛丽 名字:海伦 姓氏:奥利弗 身份证号码:198895 身高:164 等等,大约还有1000人。我想把它变成一个数据结构,我可以使用它进行进一步的分析,但我不太确定如何使用它,因为它的格式与我以前使用的格式有很大的不同


我遇到的另一个问题是,对于没有孩子的人来说,这条线完全没有了(就像例子中的海伦一样)。为了让事情变得更困难,我只能使用标准库和numpy(而不是熊猫,否则我会尝试使用)。好吧,如果你不能使用任何特别有用的第三方库(无论如何,为什么不能?),那么你必须“手工”完成

您将打开文本文件并逐行读取它,然后检查该行的内容:如果该行不是空的,则可以使用字符串对象的
split
方法访问字段,如果有子行,还可以使用进一步的
split
获取单个子行。如果该行为空,您将开始一条新记录


这是一个高层次的方法,我鼓励你们在这一点上尝试一下,如果你们有进一步的具体问题,再回来。但是,自己弄清楚如何逐行读取文件和拆分字符串等是很有价值的经验:)

我会避免使用一行,这样更容易理解。我假设您知道如何打开文本文档,我只是将其复制粘贴到下面的代码段中:

string = '''First name: Jeff
Last name: Frost
ID number: 190293
Height: 194
Children: George, Mary

First name: Helen
Last name: Oliver
ID number: 198895
Height: 164'''

people = [ prop for prop in string.split('\n\n') ] # Separating Jeff from Helen
properties = [i.split('\n') for i in people] # Separating their properties.
l = []
for p in properties:
    l.append(dict([i.split(':') for i in p])) # Turn each persons' properties into dictionaries
l
将是一个字典列表,类似于
json
文件。如果将其转换为数据帧,则会给出:

df = pd.DataFrame(l)
输出:

      First name Last name ID number Height       Children
0       Jeff     Frost    190293    194   George, Mary
1      Helen    Oliver    198895    164            NaN

为什么你的孩子被名字而不是ID联系起来?还有,你试过什么了吗?