Подготовка в .csv на Python Anaconda для contenate, частичный успех - PullRequest
0 голосов
/ 08 июня 2018

Я успешно конкатенировал часть своих данных, но мне нужны некоторые указатели в dtype prep для конкатенации всего набора данных, я думаю!

9 csv (те же заголовки столбцов) для конкатенации в Python Anaconda.Во-первых, 6 без проб (df1-6).7-9 (df7-9) не происходит (.csv's не> 5 МБ).Я попытался определить dtypes на основе dtypes, которые он угадал для .csv 1-6, с некоторыми изменениями, но он не распознает 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})

Когда я проверяю dtypes на df1 - df6, они заполняются и идентичны.Когда я проверяю df7 - df9, возвращается ошибка, что для df7 'str' объект не имеет атрибутов и что df8 и df9 имеют NameError и что они не определены.

df7.head() возвращает

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

, в то время как df1 - df6 показывает правильный образец таблицы данных.

1 Ответ

0 голосов
/ 08 июня 2018

У вас происходит несколько разных вещей.

Что касается проблемы dtypes, в документации read_csv есть несколько примеров указания типов.Возможно, вы захотите использовать dtype в качестве имени аргумента, а не то, что у вас есть (т. Е. df7.dtypes).

Для ошибки атрибута, это потому, что вы присваиваете строку этой переменной.А именно,

df9 = 'PL.csv'

означает, что df9 теперь является строкой.Попробуйте распечатать его, и вы увидите, что df9 печатает PL.csv.

Ошибки NoneType связаны с тем, что Python никогда не доходил до df8 и df9.(NoneType обычно означает, что что-то пошло не так, и переменная еще не существует.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...