使用不同逻辑折叠Pandas数据帧中的行
使用不同逻辑折叠Pandas数据帧中的行
我想要将匹配给定列的数据行合并,但其余的列需要使用不同的逻辑进行合并。例如:\n
City ColumnA ColumnB Seattle 20 30 Seattle 30 20 Portland 25 25 Portland 10 40
\n我想要按城市进行合并,让ColumnA保留最低值,ColumnB保留平均值。结果应该是:\n
City ColumnA ColumnB Seattle 20 25 Portland 10 32.5
\n这只是一个例子,实际问题中,我想要应用更复杂的逻辑而不仅仅是min()或mean()。\n有什么正确、清晰和简单的方法可以做到这一点吗?谢谢。
问题的原因是在使用Pandas数据框时,如果要按行合并数据,并且每列的逻辑不同,那么使用.groupby和.agg方法时,只能使用预定义的函数(如min、mean等)。如果要应用自定义逻辑,则需要另外的解决方法。
解决方法是通过使用.groupby和.agg方法,并传递一个自定义函数作为参数来实现。可以参考Stack Overflow上的一个问题的回答,该问题提供了一个示例代码,可以帮助解决这个问题。
具体方法如下:
1. 使用.groupby方法将数据框按照指定的列进行分组,设置参数as_index=False以保持原始索引。
2. 使用.agg方法对分组后的数据进行聚合操作,并传递一个字典作为参数。字典的键是要聚合的列名,值是要应用的自定义函数。
3. 自定义函数可以根据具体需求来编写,可以是任何逻辑。
下面是一个示例代码:
df.groupby('City', as_index=False).agg({'ColumnA': custom_function, 'ColumnB': custom_function})
其中,custom_function是一个自定义函数,根据具体需求编写。该函数将应用于每个分组的列。
通过使用这种方法,可以在Pandas数据框中按照不同的逻辑合并行。