2024-06-07 00:46:59 发布
网友
我有一个巨大的数据帧问题。我需要清理它,但只清理行,从-1到2,金额和账单为零(见图) 也许可以连接行,然后删除它,但我不知道怎么做
谢谢你,汉娜
尝试选择行的索引并应用drop方法
temp_df = df[(df.Delivery > -2) & (df.Delivery < 3) & (df.Bill == 0)] index_lst = temp_df.index.values.tolist() df = df.drop(index_lst)
如果希望排除交付介于-1和2之间且数量为0的所有数据,您可以过滤数据帧:
df = df[df["Delivery"].isin(range(-1,3)) & (df["Amount"] == 0)]
import pandas as pd df = pd.DataFrame({"Delivery": [-1, 0, 1, 2, -1, 0, 1, 2], "Amount": [2500, 2500, 2500, 3500, 0, 0, 0, 0]})
Delivery Amount 0 -1 2500 1 0 2500 2 1 2500 3 2 3500 4 -1 0 5 0 0 6 1 0 7 2 0
筛选器是一个系列,它包含数据帧或系列中每一行的值True或False
True
False
例如,为我们提供示例中给出的数据帧的第一行、第二行和最后一行的过滤器如下所示:
f = pd.Series([True, True, False, False, False, False, False, True]) df = df[f]
Delivery Amount 0 -1 2500 1 0 2500 7 2 0
f1 = df["Delivery"].isin(range(-1, 3))
0 True 1 True 2 True 3 True 4 True 5 True 6 True 7 True
f2 = (df["Amount"] == 0)
0 False 1 False 2 False 3 False 4 True 5 True 6 True 7 True
f = f1 & f2
df = df[f]
Delivery Amount 4 -1 0 5 0 0 6 1 0 7 2 0
尝试选择行的索引并应用drop方法
如果希望排除交付介于-1和2之间且数量为0的所有数据,您可以过滤数据帧:
简短回答
长话短说
创建数据帧示例
什么是过滤器?
筛选器是一个系列,它包含数据帧或系列中每一行的值
True
或False
例如,为我们提供示例中给出的数据帧的第一行、第二行和最后一行的过滤器如下所示:
第一个过滤器:交付介于-1和2
第二个过滤器:数量为0
用和
连接两个过滤器最后,应用过滤器
相关问题 更多 >
编程相关推荐