pd.DataFrame.drop_duplicates

keep: {‘first’, ‘last’, False},默认为‘first’
keep=‘first’时保留该标签第一次出现时的样本,之后重复出现的全部丢弃。
keep=‘last’表示保留该标签最后一次出现的样本,
keep=False时该标签重复的样本全部丢弃

inplace:bool,默认为False
inplace=False时返回去除重复项后的DataFrame,原来的DataFrame不改变。
inplace=True时返回空值,原来DataFrame被改变

https://blog.youkuaiyun.com/weixin_40539826/article/details/111186024

### 使用 Pandas DataFrame 合并行单元格 在处理表格数据时,有时需要合并具有相同值的相邻行。Pandas本身并不直接提供用于合并行的功能,但可以通过自定义方法实现这一目标。 对于简单的重复项删除操作可以使用 `drop_duplicates` 方法来移除完全相同的行[^1]: ```python import pandas as pd data = {'A': ['foo', 'bar', 'foo', 'bar'], 'B': ['one', 'one', 'two', 'three']} df = pd.DataFrame(data) # 删除列 A 和 B 上有重复值的行 result_df = df.drop_duplicates() ``` 然而当涉及到更复杂的场景比如跨多行合并特定条件下的单元格,则可能需要用到groupby结合agg函数的方式[^2]: ```python def merge_consecutive_rows(df, column_name): """ 将连续相等的行按照指定列进行合并 参数: df (pd.DataFrame): 输入的数据. column_name (str): 要检查是否连续相等的列名. 返回: merged_df (pd.DataFrame): 处理后的数据. """ # 创建一个新的布尔列表表示当前元素与其前一个不同之处 mask = df[column_name].ne(df[column_name].shift()) # 对于每一个分组应用聚合操作 grouped = df[mask].groupby((~mask).cumsum()).agg({column_name:'first'}) return grouped.reset_index(drop=True) example_data = { "Category": ["X", "X", "Y", "Z"], "Value": [10, 15, 7, 9], } example_df = pd.DataFrame(example_data) merged_example_df = merge_consecutive_rows(example_df, "Category") print(merged_example_df) ``` 上述代码展示了如何通过创建辅助掩码以及利用累计求和(`cumsum`)技巧来进行基于给定条件下对DataFrame中的某些行执行合并动作[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值