基本上无法读取单个csv文件的所有内容。 csv文件的前几行包含7列。文件的其余部分包含13列。我可以在不同的时间单独阅读它们,但我想知道是否有一种方法可以立刻阅读它们。一些csv文件的照片; (注意:你可以忽略为第一个数据帧创建的nans,它们不需要它们(只使用第一行),我只是在这里展示它们以获得完整的概述)
现在,我已经尝试过两次使用pandas read_csv
,但是会出错,或者文件没有正确读取。即。如果我首先使用pandas读取第一个数据帧,第二次读取第二个数据帧时,它会跳过前几行。即。数据框将有一个“日期(NZST)”,盯着大约1940年而不是1910年,如图所示。例如。
df1 = pd.read_csv(file,skiprows = 2, nrows = 1, delimiter = '\t',header = None)
df2 = pd.read_csv(file,skiprows = 8,delimiter = '\t')
如果我这样做,反过来,例如。 df2
在df1
之前首次阅读,当我阅读EmptyDataError: No columns to parse from file
时它会给df1
cols = list(range(0,7))
cols = [0,1,2,3,4,5,6,7]
df1 = pd.read_csv(file,skiprows = 2,delimiter = '\t',usecols=cols)
我的数据的一些样本; https://drive.google.com/drive/folders/15PwpWIh13tyOyzFUTiE9LgrxUMm-9gh6?usp=sharing
有可能,但是如果想要正确设置qazxsw poi of columns,那么在pandas中读取文件仍然更好/更简单 - 不是所有列到字符串:
types
另一个解决方案应该是逐行读取并为2个DataFrame创建2个列表,但是再次获取所有字符串 - 需要将每个列转换为整数或浮点数,或者如果需要将日期时间转换为。
r = [0,1,3,4,5,6,7]
df2 = pd.read_csv(file,skiprows = r, delimiter = '\t',header = None, names=range(13))
print (df2.head())
0 1 2 3 4 5 \
0 Woodhill Forest 1402 A64741 -36.749 174.431 30
1 Station Date(NZST) Time(NZST) Tmax(C) Period(Hrs) Tmin(C)
2 -36.7490, 174.4310 1951 01 01 09:00 - - 17.8
3 -36.7490, 174.4310 1951 01 02 09:00 24.9 24 15.6
4 -36.7490, 174.4310 1951 01 03 09:00 17.2 24 12.7
6 7 8 9 10 11 12
0 G NaN NaN NaN NaN NaN NaN
1 Period(Hrs) Tgmin(C) Period(Hrs) Tmean(C) RHmean(%) Period(Hrs) Freq
2 24 - - - - - D
3 24 - - - - - D
4 24 - - - - - D