Pandas: выбор строк для создания нового фрейма данных с использованием индекса [duplicate]

writerow принимает последовательность. Вы даете ему одну строку, поэтому она обрабатывает это как последовательность, а строки действуют как последовательности символов.

Что еще вы хотите в этой строке? Ничего? Если это так, сделайте его одним из элементов:

spamwriter.writerow([u' '.join(model.a.stripped_strings).encode('utf8').strip()])

(Кстати, вызов unicode() совершенно не нужен, поскольку вы уже соединяетесь с разделителем unicode.)

40
задан user2806761 3 October 2013 в 10:36
поделиться

3 ответа

Для больших наборов данных эффективна память для чтения только выбранных строк с помощью параметра skiprows.

Пример

pred = lambda x: x not in [1, 3]
pd.read_csv("data.csv", skiprows=pred, index_col=0, names=...)

Подробности

Из docs :

skiprows: list-like или integer или callable, по умолчанию None

...

Если вызываемый, вызываемая функция будет оцениваться по индексам строк, возвращается True, если строка должна быть пропущена, а False - в противном случае. Примером допустимого вызываемого аргумента будет lambda x: x in [0, 2]

Эта функция работает в версии pandas 0.20.0+. См. Также соответствующую проблему и связанную запись .

1
ответ дан pylang 25 August 2018 в 21:10
поделиться
List = [1, 3]
df.ix[List]

должен сделать трюк! Когда я индексирую кадры данных, я всегда использую метод .ix (). Его намного проще и гибче ...

UPDATE Это уже не принятый метод индексирования. Метод ix устарел. Используйте .iloc для индексирования с индексом целых чисел и .loc для индексирования на основе меток.

78
ответ дан user2285236 25 August 2018 в 21:10
поделиться

вы также можете использовать iloc:

df.iloc[[1,3],:]
31
ответ дан yemu 25 August 2018 в 21:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: