-
str.startwith()
,用于检查列中的值是否以指定的字符串开头df = patients[patients['conditions'].str.startswith("DIAB1") | patients["conditions"].str.contains(" DIAB1", regex=False)]
regex=False
代表不使用正则表达式进行匹配,而是直接查找子字符串。 -
str.contains()
用于检查值是否包含指定的字符串,示例见1df = patients[patients['conditions'].str.contains("DIAB1", case=False, na=False)]
case=False
表示不区分大小写,na=False
将缺失值视为不匹配。 -
pivot()
方法用于重塑DataFrame
,用于将行转换为列,或者将列转换为行result = department.pivot(index='id', columns='month', values='revenue').reindex(columns=columns).rename(columns=lambda x:f'{x}_Revenue').reset_index()
其中参数index表示新
DataFrame
的索引列,即原DataFrame
中的行标签
参数columns
表示DataFrame
的列,即原DataFrame
中的列标签
参数values
表示要填充到新DataFrame
中的值,通常是原DataFrame
中的数据 -
reindex()
用于重新索引,可以用于DataFrame
或Series
,可以填充缺失值 -
dropna=False
指定保留存在缺失值的行df = transactions.groupby(['country','month'],dropna = False).agg(...)
在
pandas
中,groupby
方法不接受dropna
参数,它本身就是默认保留所有行的,而在聚合函数内部会默认忽略缺失值,它通常用于DataFrame.dropna()
,上述代码中agg()
是一个聚合函数 -
agg()是Pandas 中一个非常强大的函数,它允许用户对 DataFrame或 Series对象的分组数据进行多种聚合操作。
result = sales_df.groupby(['country', 'year']).agg({ 'sales': ['sum', 'mean', 'max'] }) result.columns = ['total_sales', 'average_sales', 'max_sales']
当使用字典作为
agg()
的参数时,字典的键是列名,值是聚合函数的名称或自定义函数。result_df = transactions_copy.groupby(['month', 'country'], dropna=False).agg(trans_count=('id', 'count'), # 计算总交易数量approved_count=('state', lambda x: (x == 'approved').sum()), # 计算已批准交易数量trans_total_amount=('amount', 'sum'), # 计算总交易金额approved_total_amount=('amount', lambda x:sum(x[transactions_copy["state"]=="approved"])) # 计算已批准交易总金额 ).reset_index()
-
strftime()
是datetime
模块中的函数,用于格式化日期和时间transactions_copy['trans_date'] = pd.to_datetime(transactions_copy['trans_date']) transactions_copy['month'] = transactions_copy['trans_date'].dt.strftime('%Y-%m')
%Y
是年份,%m
是月份,%d
是日期,%H
是小时,%M
是分钟,%S
是秒钟