提问人:Philip de Bruin 提问时间:8/11/2023 更新时间:8/11/2023 访问量:27
如何获取 Excel 在 pd.read_csv() 中使用的自定义分隔符
How to get the custom separator Excel uses in pd.read_csv()
问:
我有几个 .txt 文件,其中包含我想绘制的数据。由于有这么多,我更喜欢使用 python 而不是 Excel 来绘制这些。.txt文件是由德国机器生成的,这就是十进制逗号的原因。这可以通过将 decimal 参数设置为 ',' 轻松解决。但是,.txt 文件中使用的分隔符似乎不是普通的制表符或空格符,而是一些自定义分隔符。我无法设法在 python 中分离列。查找附加的我的代码。请注意,我已经尝试了 python 中的普通分隔符,包括将 sep 留空以便它可以查找自己的分隔符,但无济于事。
但是,如果我使用 Excel,则可以在选择 ,,custom'' 分隔符时导入 .txt 文件。我无法弄清楚这是哪个分隔符,但想在 python (pandas.read_csv()) 中复制它。有谁知道如何弄清楚 Excel 使用了哪个分隔符,或者如何在 python 中实现相同的结果?可以在此处找到指向 .txt 文件示例的链接。
法典:
gdh_pms = []
os.chdir(r"C:\Users\pivde\Desktop\Tuks\nagraads\karakterisering\tga\txt")
for leggernaam in glob.glob("*.txt"):
with open(leggernaam, mode='rb') as fp: data = fp.read()
stroom = io.StringIO(data.decode('ansi'))
df = pd.read_csv(stroom, skiprows=10, skipfooter=8, engine='python', sep='\t', decimal=',')
df['origin'] = leggernaam
gdh_pms.append(df)
os.chdir(r"C:\Users\pivde\Desktop\Tuks\nagraads\karakterisering\tga")
结果:
8 31,333 4,63395 origin
0 9 31,500 4,6333 PLA 0_gdh_30_200°C_Air_090823_DSC.txt
1 10 31,667 4,63265 PLA 0_gdh_30_200°C_Air_090823_DSC.txt
2 11 31,833 4,63207 PLA 0_gdh_30_200°C_Air_090823_DSC.txt
3 12 32,000 4,63107 PLA 0_gdh_30_200°C_Air_090823_DSC.txt
4 13 32,167 4,63013 PLA 0_gdh_30_200°C_Air_090823_DSC.txt
... ... ...
998 1007 197,833 4,44944 PLA 0_gdh_30_200°C_Air_090823_DSC.txt
999 1008 198,000 4,44985 PLA 0_gdh_30_200°C_Air_090823_DSC.txt
1000 1009 198,167 4,45055 PLA 0_gdh_30_200°C_Air_090823_DSC.txt
1001 1010 198,333 4,45132 PLA 0_gdh_30_200°C_Air_090823_DSC.txt
1002 1011 198,500 4,45206 PLA 0_gdh_30_200°C_Air_090823_DSC.txt
1003 rows × 2 columns
答:
1赞
Haimrich
8/11/2023
#1
似乎分隔符由可变数量的空格组成,因此您可以尝试:
df = pd.read_csv(stroom, skiprows=10, skipfooter=8, engine='python', decimal=',', delim_whitespace=True)
下一个:拆分名称序列数组中的列
评论