首页 > 解决方案 > .csv 在 python Anaconda 中为 contenate 准备,部分成功

问题描述

我已经成功连接了我的部分数据,但我认为需要 dtype prep 中的一些指针来连接整个数据集!

在 python Anaconda 中连接 9 个 csv(相同的列标题)。首先,6 没有概率(df1-6)。7-9 (df7-9) 没有发生(.csv 不 > 5mb)。我尝试根据它为 .csv 的 1-6 猜测的 dtypes 定义 dtypes,并进行了一些调整,但它在我的代码中没有将 Float64 识别为 dtype,还尝试了 low_memory=False,它不知道 False 是什么。新手。

df1 = pd.read_csv('AN.csv', header=0, nrows=1934)
df2 = pd.read_csv('J.csv', skiprows=0, nrows=89656)
# df2.head displayed minor data issue,  this files timestamp is missing seconds so need to auto add :00 somehow after remedy greater issue"
df3 = pd.read_csv('SN.csv', skiprows=0, nrows=6129)
df4 = pd.read_csv('SR.csv', skiprows=0, nrows=975)
df5 = pd.read_csv('UP.csv', skiprows=0, nrows=3080)
df6 = pd.read_csv('YS.csv', skiprows=0, nrows=168)
#df7 = pd.read_csv('FL.csv', skiprows=0, nrows=408, low_memory=False)
df7 = pd.read_csv('FL.csv', skiprows=0, nrows=408,
                  df7.dtype={"Date and Time (UTC)": object,
                             "Receiver": object, "Transmitter": object, 
                             "Transmitter Name": float64,
                             "Transmitter Serial": float64,
                             "Sensor Value": int,
                             "Sensor Unit": object,
                             "Station Name": object,
                             "Latitude": float64,
                             "Longitude": float64})
#df8 = pd.read_csv('GR.csv', skiprows=0, nrows=4698, low_memory=False)
df8 = pd.read_csv('GR.csv', skiprows=0, nrows=4698,
                  df8.dtype=({"Date and Time (UTC)": object,
                             "Receiver": object, "Transmitter": object,
                             "Transmitter Name": float64,
                             "Transmitter Serial": float64,
                             "Sensor Value": int,
                             "Sensor Unit": object,
                             "Station Name": object,
                             "Latitude": float64,
                             "Longitude": float64})
df9 = 'PL.csv'
#df9 = pd.read_csv ('PL.csv', skiprows=0, nrows=19385, low_memory=False)
df9 = pd.read_csv ('PL.csv', skiprows=0, nrows=19385,
                    df9.dtype={"Date and Time (UTC)": object,
                             "Receiver": object,
                             "Transmitter": object,
                             "Transmitter Name": float64,
                             "Transmitter Serial": float64,
                             "Sensor Value": int,
                             "Sensor Unit": object,
                             "Station Name": object,
                             "Latitude": float64,
                             "Longitude": float64})

当我检查dtypesthroughdf1df6,它们填充并且是相同的。当我检查它df7df9,它返回错误,即 for df7 'str'object 没有属性并且df8df9aNameError并且它们没有定义。

df7.head()返回

AttributeError: 'str' object has no attribute 'head'

同时df1通过df6向我展示了一个适当的数据表示例。

标签: pythonpandas

解决方案


你有一些不同的事情发生。

对于 dtypes 问题,在read_csv文档中有一些关于指定类型的示例。您将希望dtype用作参数名称,而不是您拥有的名称(即df7.dtypes)。

对于属性错误,这是因为您正在为该变量分配一个字符串。即,

df9 = 'PL.csv'

表示 df9 现在是一个字符串。尝试打印它,你会看到df9打印出来PL.csv的。

NoneType错误是因为 Python 从未到达 df8 和 df9 。(NoneType通常意味着出现问题并且变量还不存在。)


推荐阅读