Почему куски панд ведут себя не так, как фактические данные? - PullRequest
1 голос
/ 11 июля 2019

Я хочу обработать файл CSV, присутствующий на моем локальном жестком диске, кусками, используя панд.У меня есть готовый код обработки, и он работает без каких-либо ошибок, если я выполнил код для всего набора данных.Проблема возникает, когда один и тот же код выполняется на чанках.

Я подумал, что, возможно, чанки принадлежат к разным типам данных, поэтому попытался проверить тип чанков, используя type(chunk), и он совпадает с type(whole_dataframe).

Что я пробовал:

whole_data = pd.read_csv('data.csv', sep=',', header=0)

whole_data['cuisines'] = whole_data.cuisines.apply(lambda x: ','+x)

Это дает мне ожидаемый результат.Но когда я пытаюсь запустить такой же код на чанках, как:

for chunk in pd.read_csv('data.csv', sep=',', header=0, chunksize=1000):
    chunk['cuisines'] = chunk.cuisines.apply(lambda x: ','+x)

Это выдает мне ошибку: TypeError: can only concatenate str (not "float") to str

Я ожидаю, что вывод будет таким же, как вывод, полученный при запускекод всего набора данных.

1 Ответ

1 голос
/ 11 июля 2019

Работает ли это:

for chunk in pd.read_csv('data.csv', sep=',', header=0, chunksize=1000):
    chunk['cuisines'] = chunk.cuisines.apply(lambda x: ','+str(x))

Еще лучше:

for chunk in pd.read_csv('data.csv', sep=',', header=0, chunksize=1000):
    chunk['cuisines'] = ',' + chunk.cuisines.astype(str).str
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...