我有一个包含大量数据的文本文件,我只想编辑一列。坐标从第4行第111列开始,到第55行第111列结束。这里有一个例子:
// typTpt TypTpt NomTypTpt LibTypTpt TypDem Medic Motif Mutat Classe Dispo AnnDep AnnRdv AnnExclu HorRdv Ste TSupp TypHos AC , Etb_Debiteur , Art80 , WithForfait , RetSelAutre
01, E, Entr‚e ,"Entr‚e " , E, N, , 0 , ,
02, E, Entr‚eUrg ,"D‚part " , E, N, U, S, 02, O,IE ,IEAH , E , D, O, 0, L, S , , 1 , ,
40, E, Entr‚eMEG ,"D‚part " , I, N, u, S, 02, O,I ,I , , D, N, 0, L,
我想用B代替N来编辑Medic列:
// typTpt TypTpt NomTypTpt LibTypTpt TypDem Medic Motif Mutat Classe Dispo AnnDep AnnRdv AnnExclu HorRdv Ste TSupp TypHos AC , Etb_Debiteur , Art80 , WithForfait , RetSelAutre
01, E, Entr‚e ,"Entr‚e " , E, B, E, S, 01, O,IEA@ ,IEAH , EA , D, N, 0, L, , , 0 , ,
02, E, Entr‚eUrg ,"D‚part " , E, B, U, S, 02, O,IE ,IEAH , E , D, O, 0, L, S , , 1 , ,
40, E, Entr‚eMEG ,"D‚part " , I, B, u, S, 02, O,I ,I , , D, N, 0, L,
我已经考虑过使用pandas模块,但它不适用于我的文本,因为它不是一个表,我不能重新排列它。
import pandas as pd
df = pd.read_csv("d:/art80_typTpt_v2.txt", sep="\s+")
df.loc[df["Medic"] == "B" ,"Medic"] = "A"
print(df)
df.to_csv('d:/test.txt',sep='\t', index=False)
我们可以用python做一个函数来定位自己在特定的列和行吗?如果是这样,是否可以只修改大量数据中的一列,例如Medic列?
2条答案
按热度按时间umuewwlo1#
您可以简单地逐行执行,并在正确的位置替换所需的字符,因为Python中的字符串是数组。
nbnkbykc2#
您的CSV文件存在一些一致性问题。乍一看,它看起来像是一个逗号分隔的CSV文件,但不是每行都有相同数量的逗号。确保CSV文件中的每一行都有相同数量的逗号,然后您可以使用以下命令读取:
逗号分隔符 sep="," 是标准的,但有时制表符 sep="\t” 或分号 sep=";” 使用。