Добавить результаты DataFrame применить лямду к DateFrame или новой серии - PullRequest
0 голосов
/ 26 апреля 2018

Я использую метод apply с лямдой для вычисления каждой строки в Dataframe для возврата Series.

statsSeries = matchData.apply(lambda row: mytest(row), axis=1)

где mytest (строка) - это функция, которая возвращает метку времени, число с плавающей точкой, число с плавающей точкой.

def mytest(row):
    timestamp = row['timestamp'] 
    wicketsPerOver = row['wickets']/row['overs']
    runsPerWicket = row['runs']/row['wickets'] 
    return timestamp, wicketsPerOver, runsPerWicket 

Как я уже писал, statsSeries содержит два столбца, один - индекс, а другой - кортеж (timestamp, wicketsPerOver, runPerWicket).

Как вернуть серию с тремя столбцами [timestamp, wicketsPerOver, runPerWicket]?

1 Ответ

0 голосов
/ 26 апреля 2018

Похоже, вам нужно использовать pd.Series.apply(pd.Series).

Вот минимальный пример:

import pandas as pd

df = pd.DataFrame({0: [1, 2, 3, 4]})

def add_some(row):
    return row[0]+1, row[0]+2, row[0]+3

df[[1, 2, 3]] = df.apply(add_some, axis=1).apply(pd.Series)

print(df)

   0  1  2  3
0  1  2  3  4
1  2  3  4  5
2  3  4  5  6
3  4  5  6  7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...