从单个csv文件中读取两个完整的不同数据帧

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从单个csv文件中读取两个完整的不同数据帧相关的知识,希望对你有一定的参考价值。

基本上无法读取单个csv文件的所有内容。 csv文件的前几行包含7列。文件的其余部分包含13列。我可以在不同的时间单独阅读它们,但我想知道是否有一种方法可以立刻阅读它们。一些csv文件的照片; (注意:你可以忽略为第一个数据帧创建的nans,它们不需要它们(只使用第一行),我只是在这里展示它们以获得完整的概述)enter image description here

enter image description here

enter image description here

现在,我已经尝试过两次使用pandas read_csv,但是会出错,或者文件没有​​正确读取。即。如果我首先使用pandas读取第一个数据帧,第二次读取第二个数据帧时,它会跳过前几行。即。数据框将有一个“日期(NZST)”,盯着大约1940年而不是1910年,如图所示。例如。

df1 = pd.read_csv(file,skiprows = 2, nrows = 1, delimiter = '	',header = None)
df2 = pd.read_csv(file,skiprows = 8,delimiter = '	')

如果我这样做,反过来,例如。 df2df1之前首次阅读,当我阅读EmptyDataError: No columns to parse from file时它会给df1

  • 我错了,因为它暗示这可以修复(也许),如果我以某种方式重置读者,但我一直在无休止地搜索,但似乎无法找到一种方法。
  • 我还在考虑只阅读7列,因为其余的列无论如何都不需要;或者既不冷也不行
cols = list(range(0,7))
cols = [0,1,2,3,4,5,6,7] 
df1 = pd.read_csv(file,skiprows = 2,delimiter = '	',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 = '	',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  

以上是关于从单个csv文件中读取两个完整的不同数据帧的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 R 中的原始文件名将包含多个数据帧的大列表保存为单个 csv

Pandas:使用循环和分层索引将多个 csv 文件导入数据帧

是否可以以相同或不同的顺序将具有相同标题或标题子集的多个 csv 文件读取到 spark 数据帧中?

使用分块将 CSV 文件读入 Pandas 数据帧,生成单个目标数据帧

Pyspark - 将数据帧写入 2 个不同的 csv 文件

将多个文件中的数据读入单个 RDD 或 Dataframe