Pandas Применить обработку большего количества строк, чем в существующем фрейме данных - PullRequest
0 голосов
/ 30 января 2020

У меня есть Pandas фрейм данных очень простой, его форма (140, 10), но когда я использую:

df.apply(lambda row: somefunction(row, otherparameter), axis=1)

Это удваивает первую строку в фрейме данных, чтобы докажите это, я использовал печать внутри somefunction , которая печатает строку.

единственная странная вещь, которую я делаю внутри somefunction , - вставка записи в базу данных ( но печать перед этой инструкцией, поэтому она не имеет к этому никакого отношения, или я верю в это). есть какая-то причина, по которой я не хочу использовать функцию to_sql, но есть и другой вариант.

Когда я проверяю форму информационного кадра после линии применения, форма остается такой же.

Хотелось бы узнать возможные причины этого

1 Ответ

0 голосов
/ 30 января 2020

Скорее всего, он будет работать медленнее, чем «обычное» , применимо , но вы можете попробовать iterrows () . Примерно так:

for ind, row in df.iterrows():
    somefunction(row, otherparameter)

Первый результат из iterrows - это индекс текущей строки. Если вам это не нужно, замените ind на _ .

...