【发布时间】:2023-04-08 00:41:01
【问题描述】:
我有两种类型的 csv 文件,它们都有几行,但有时用空格分隔,有时用逗号分隔。对于逗号情况,我没有发现将它们添加到 DataFrame 的问题,但我在空格情况下确实有问题,我在下面的代码中引入了文件链接。 ex1.csv 用逗号隔开,ex2.csv 用空格隔开。
https://1drv.ms/f/s!AgQ59n47uloFzSPbIlS9RhRNfZ1p
import os
import pandas as pd
import numpy as np
import openpyxl as pyx
import numpy as np
x=[]
y=[]
z=[]
Rx=[]
Ry=[]
Rz=[]
atot=[]
t=[]
f = io.open(file, mode="r", encoding="utf-8")
lines=f.readlines()
for i in lines:
try:
a=[i.strip('\n')]
a1=[float(n) for n in a[0].split(',')]
t.append(a1[1])
x.append(a1[4])
y.append(a1[3])
z.append(a1[2])
Rx.append(a1[7])
Ry.append(a1[6])
Rz.append(a1[5])
except :
a=[i.split('\n')]
a1=[float(n) for n in a[0].split()]
x.append(a1[3])
y.append(a1[2])
z.append(a1[1])
Rx.append(a1[6])
Ry.append(a1[5])
Rz.append(a1[4])
上面:如果分隔符是逗号,我会得到错误 'list' 对象没有属性 'split' 这是因为 a 是以这种方式读取的:
a= [['\ufeff -1.3053 2.2743 -5.0045 0.0121 0.1814 -0.0285 0.0000 0.0000',
'']]
我添加了一点,我事先将包含逗号的行分开(后面的行以这种方式除外,它分离得很好,但是在尝试将其添加到 DataFrame 时,它让我犯了错误:
t.append(i.split()[0]);
x.append(i.split()[3]);
y.append(i.split()[2]);
z.append(i.split()[1]);
Rx.append(i.split()[6]);
Ry.append(i.split()[5]);
Rz.append(i.split()[4]);
添加点到DataFrame的添加是这样完成的:
df1 = pd.DataFrame(list(zip(x, y, z, Rx, Ry, Rz)), columns=['x', 'y', 'z', 'Rx' , 'Ry', 'Rz'])
for i in df1.columns:
mylist+=(list(df1.loc[df1[i].argmax()]))
for i in df1.columns:
mylist+=(list(df1.loc[df1[i].argmin()]))
【问题讨论】: