我有以下数据帧:
我试图为df1['Tub'中的每个唯一值创建一个数据帧。现在,我正在创建一个字典,并尝试在每个新的DataFrame实例中添加一个匹配的Tub。我认为我的逻辑是正确的
tub_df = {}
tubs = []
for tub in df1['Tub']:
if tub not in tubs:
tubs.append(tub)
#['Tub 1', 'Tub 2', 'Tub 3']
for tub_name in tubs:
for tub_row in df1['Tub']:
if tub_row == tub_name:
tub_df[tub] = pd.DataFrame.copy(df1.loc[tub_row])
谢谢你的帮助
这是一个较短的版本,在
Tub
中标识唯一值&;使用dict comprehension创建过滤的dict
基于问题标题,特别是“并为每个数据帧进行计算”部分,听起来您正在寻找pandas groupby功能。例如,如果要计算每个桶的所有列的平均值,可以执行以下操作:
或者,如果希望将每个组作为单独的数据帧进行循环:
编辑附加请求:
要将通用函数应用于每个组,您可以定义该函数,然后使用
pandas.core.groupby.GroupBy.apply
,例如:这将返回一个数据帧,其中每个组中的最后一项都已删除
相关问题 更多 >
编程相关推荐