python3 pandas 过滤,删除,重新设定索引

本文介绍了一系列数据操作函数,包括数据过滤、打印和修改等关键步骤。通过具体实例展示了如何使用Python进行高效的数据处理,适用于需要频繁操作数据集的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

def fileterdata(targetname):
    newdatas={}
    for keyname,valuedatas in datas.items():
        temp=valuedatas[valuedatas['Name']==targetname].reset_index(drop=True)
        newdatas[keyname]=temp
    return newdatas


def printdatas(datas):
    for keyd,valued in datas.items():
        print(valued)
        print('*'*30)
        for index in range(len(valued)):
            dd=valued.loc[index:index,'Name3'].values
            print(dd)

def changedata():
    newdatas={}
    for keyd,valued in datas.items():
        valuedd=valued
        for indexs in range(len(valued)):
            if indexs%3==0:
                print(indexs)
                # 删除数据的时候一定要复制,否则值不会更新
                valued=valued.drop([indexs],axis=0,inplace=False) # 按行删
        newdatas[keyd]=valued.reset_index(drop=True) # 重新设置索引
    printdatas01(newdatas)

### 使用 Python Pandas 对 DataFrame 的整列执行判断操作 对于想要对 `pandas` 中的整个列应用条件逻辑的情况,可以利用布尔索引来完成这一目标。下面展示了一个具体的例子,在此案例中创建了一个简单的 `DataFrame` 并对其一列进行了基于特定条件的操作。 ```python import pandas as pd df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9] }) print("原始数据框:") print(df) # 假设要找出'B'列大于等于5的所有行 filtered_df = df[df['B'] >= 5] print("\n过滤后的数据框 (仅显示 B 列>=5):") print(filtered_df) ``` 上述代码片段展示了如何通过指定条件筛选出满足该条件的数据行[^1]。这里的关键在于使用方括号内的表达式来定义所需的过滤标准;在这个例子中就是 `'B' >= 5`。 如果目的是向现有 `DataFrame` 添加一个新的布尔类型的列,表示某列是否符合给定条件,则可按照如下方式: ```python # 向原表增加新列'D', 表明'C'列中的值是否超过8 df['D'] = df['C'] > 8 print("\n更新后的数据框(含新增加的 D 列):") print(df) ``` 这段脚本会在原有的基础上加入名为 `'D'` 的新列,其中包含了关于 `'C'` 列数值是否高于8的结果——即当对应位置上的元素确实超过了设定阈值时返回 `True` ,反之则为 `False` 。这同样适用于其他任何有效的比较运算符或组合而成更复杂的条件语句。 为了修改某些符合条件的单元格内容而不是简单地添加新的指示列,可以通过 `.loc[]` 方法定位到这些条目并赋予它们新的值: ```python # 将'A'列为偶数的位置设置成其两倍大小 df.loc[df['A'] % 2 == 0, 'A'] *= 2 print("\n经过变换处理后的 A 列:") print(df) ``` 在此处,`.loc[]` 被用来选取那些在 `'A'` 列里能被2整除的记录,并将这些选定项乘以2作为最终结果保存回同一位置上[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值