df = pd.DataFrame({'A':[1,2,-1,-2,4]})
(df['A'] < 0).mean()
Условие может быть сколько угодно сложным включать в себя несколько колонок и т.д главное получить булевый массив и затем sum это количество True значений mean это их доля то есть доля строк удовлетворяющих условию. (
df
.assign(
EventTime=lambda x: pd.to_datetime(x['EventTime'],format='%Y-%m-%d %H:%M:%S')
)
.assign(
groups=(df['EventType'] != df['EventType'].shift())
.cumsum()
)
.groupby(['user_id','groups']
)
.agg(
first= pd.NamedAgg(column='EventTime',aggfunc=lambda x: np.min(x)),
last= pd.NamedAgg(column='EventTime',aggfunc=lambda x: np.max(x)),
EventType= pd.NamedAgg(column='EventType',aggfunc=lambda x: set(x).pop()),
# user_id=pd.NamedAgg(column='user_id',aggfunc=lambda x: set(x).pop()),
)
.reset_index()
.loc[:,['user_id','EventType','first','last']]
) Будет вот так. Все Идентично, только теперь группировка будет по двум колонкам.
phone_numbers = pd.read_csv('test.csv',index_col='Номер Телефона',chunksize=1)
dfs = []
counts = 0
numbers_of_interset = [777,333]
for data in phone_numbers:
index = data.index.intersection(numbers_of_interset)
res = data.loc[index,:]
dfs.append(res)
counts+=res.shape[0]
(
pd.concat(dfs)
.to_csv('result.csv')
)
print(f'found {counts} mutches')
Как вы считаете, нужно пристально в Python уходить вначале, параллельно изучая всю подноготную DS?Просто в python без подноготной DS. Насчет математики 4 дисциплины.
sep=' '.
Открой доки по функции print. Если ты например туда запятую поставишь то через запятую и т.д.
Бери python. Огромная экосистема, огромное количество обучающих бесплатных материалов и найти первую работу реалистично вполне или PHP, JS (NodeJS), JAVA.
С любым из этих языков при должном труде найти первую работу реалистичная задача. А потом если тебе очень нравится GO выучишь уже будучи опытным специалистом.