Я делаю некоторый анализ данных в Python, используя панд.В анализе я пишу множество функций, которые выглядят примерно так:
import pandas as pd
def my_func(data):
"""
A function to perform X on data
:type data: pd.DataFrame
:rtype data: pd.DataFrame
"""
<... do X to data....>
return data
# perform my_func on data
data = my_func(data)
Обычно "выполнение X" предполагает использование 1 или 2 (чаще 1) столбцов data
в расчете длясоздайте новый столбец в data
и верните фрейм данных с этим новым столбцом.Обратите внимание, что в моих функциях столбцы не перезаписываются , создаются только новые столбцы.Многие функции также используют панд groupyby
для группировки столбцов, поэтому может быть сложнее применить выражение lambda
.
Есть ли более питонический / панд дружественный / более "программный" правильный способо написании этих функций?
Я спрашиваю, потому что кажется рискованным и громоздким передавать целый фрейм данных в функцию;если функция имеет ошибку, она может повредить данные в кадре данных.Возможно, было бы более уместным передавать отдельные столбцы в виде рядов панд в функции и возвращать новый ряд?