【发布时间】:2021-02-07 20:22:02
【问题描述】:
我需要一些智慧!
我正在尝试创建一个脚本,该脚本需要两 (2) 个具有相同格式的 .txt 文件,将一个附加到另一个,然后从该结果文件创建一个 DataFrame,以便我可以对其进行操作。
文件是库存结果,但有点乱。
从这些文件中,我只需要产品的行,仅此而已,我正在使用:
listados = ["analisis_diferencias.txt","no_contadas.txt"]
def unir_listados(listados):
with open("df_final.txt","w+") as merge:
for item in listados:
with open(item) as readable:
for line in readable:
if line[4] in ["1","2","3","4","5","6","7","8","9"]:
merge.write(line)
结果是一个看起来很完美的新 .txt,因为它只使用有产品代码的行。
但我无法将其转换为普通的 DataFrame 或任何其他具有列的结构。
我最远的地方是使用 pd.read_table 创建一个单列 df,不知道如何分隔列上的每一行。
我尝试用“;”替换空格所以我可以稍后删除它会生成的空列,但后来我得到了一个包含一行和超过 6k 列的巨大列表......
也尝试将它们替换为“\t”,但没有。
pd.read_csv 方法也不起作用:
a = pd.read_csv("df_final.txt", header=None, encoding="latin-1")
ParserError:预计第 3 行中有 18 个字段,看到 19 个。错误可能 可能是由于在使用多字符定界符时忽略了引号 用过。
我在网上看到一个解决方案,它不是创建一个新的 .txt,而是在解析原始 .txt 的每一行时按值创建一个新的 df 值
但我知道,一旦您按照我现在的方式显示数据,应该有一个更简单的方法。
提前感谢您提供的任何帮助。
Ps:顺便说一句,将行附加到我的新 .txt 时,如果我使用 str([1,2,3,4,5,6,7,8,9]) 它会选择每一行,因为它检测到空字符串 char "" 在数组中。对此有什么想法吗?
编辑:
我根据要求添加了一些最终的 .txt 行。
68.17.28 D-AA SPLIT HAIER TUNDRA AS-18 ] 0 1 1 562,00 562,000
42.50.10 Z-CAMARA INSTANT. FUJI INSTAX ] 1 3 2 111,80 55,900
54.15.88 Z-CAMARA INSTANT. FUJI INSTAX ] 2 2 0 0,00 59,900
67.05.04 A-CAMARA INSTANT. FUJI INSTAX ] 1 1 0 0,00 54,500
72.29.13 C-CAMARA INSTANT. FUJI INSTAX ] 1 1 0 0,00 121,950
21.08.75 D-MEMORIA MICRO SD ULTRA SANDI] 7 7 0 0,00 15,699
21.09.35 B-MEMORIA MICRO SD ULTRA SANDI] 16 16 0 0,00 3,616
21.09.70 D-MEMORIA MICRO SD ULTRA SANDI] 11 23 12 56,18 4,682
21.11.33 D-MEMORIA MICRO SD ULTRA SANDI] 4 4 0 0,00 7,830
23.36.92 A-MICROSD SAMSUNG EVO 32GB(MB-] 9 9 0 0,00 6,811
【问题讨论】:
-
可以分享一下df_final.txt文件的前十行吗?
-
完成,我刚刚添加了它们
标签: python pandas dataframe import