我想更新外部文件。我想通过以特定格式将新数据从Pandas对象帧写入文件来完成此操作。
下面是一个文件中前两个数据块的例子(当我将数据写入文件时,我希望从数据框中获得的新数据看起来像什么)。“identifieri
“是数据块和数据框的唯一名称。
(Lines of comments, then)
identifier1 label2 = i \ label3 label4
label5
A1 = -5563.88 B2 = -4998 C3 = -203.8888 D4 = 5926.8
E5 = 24.99876 F6 = 100.6666 G7 = 30.008 H8 = 10.9999
J9 = 1000000 K10 = 1.0002 L11 = 0.1
M12
identifier2 label2 = i \ label3 label4
label5
A1 = -788 B2 = -6554 C3 = -100.23 D4 = 7526.8
E5 = 20.99876 F6 = 10.6666 G7 = 20.098 H8 = 10.9999
J9 = 1000000 K10 = 1.0002 L11 = 0.000
M12
...
字符串
在嵌套框中,新数据位于两列中,分别称为Labels
和Numbers
。每个标签都对应一个数字。例如,有标签A1
、B2
、C3
等(参见上面的示例),并且对于“标识符2”数据块,对应的数字是-788
、-6554
、-100.23
。然而,还有一些我不需要的数据。我只需要特定行的数据。
到目前为止,我已经尝试从一个嵌套框中获取我需要的特定标签和数字,然后将它们以追加模式写入一个文件。我可以从一个嵌套框中打印一个标签和它的数字:
df.set_index("Labels", inplace=True)
print("Label 1", df.loc["label1", 'Numbers'])
型
我的计划是得到我需要的每个标签和数字,然后将它们附加到一个文件中,沿着加上适当的空格。然而,当我尝试这样做时:
df.loc["label1", 'Numbers'].to_csv('file.txt', mode='a', index = False, sep=' ')
型
我得到:AttributeError: 'float' object has no attribute 'to_csv'
看起来我的方法很笨拙,而且很难弄清楚如何添加空格和换行符。如果有人知道更简单和复杂的方法,我会很感激任何建议。
1条答案
按热度按时间mcvgt66p1#
我甚至不会费心使用内置的实用程序,因为这是一种不寻常的输出,它只有几行代码通过
DataFrame
无论如何,并给你很多的控制最终输出。1.创建一个
str
,并添加任何标题、开头注解等1.循环遍历每个标识符
1.从
DataFrame
中获取每个值并将其放入输出str
中1.适当地添加新行,使其看起来像目标格式
下面是一段可运行的代码,展示了如何实现这一点(带有
rng
和dfs
的字段块只是为了生成一些示例数据,可以忽略)。请随时评论任何后续问题,或者如果我得到了错误的格式,请告诉我,我会调整。字符串
下面是我得到的输出,它看起来与您的示例数据非常相似:
型