当日期列的值在日期列表中时,我想从pandas数据帧中删除行.以下代码不起作用:
a=['2015-01-01' , '2015-02-01']
df=df[df.datecolumn not in a]
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ValueError:Series的真值是不明确的.使用a.empty,a.bool(),a.item(),a.any()或a.all().
我有一个数据帧,我从中选择两个子集dfs,df_a和df_b.例如在iris数据集中:
df_a = iris[iris.Name == "Iris-setosa"]
df_b = iris[iris.Name == "Iris-virginica"]
Run Code Online (Sandbox Code Playgroud)
获得所有元素的最佳方法iris是既不在df_a也不在df_b?我不想参考定义的原始条件df_a和df_b.我只是假设df_a和df_b是的子集iris,所以我想拔出从要素iris基础上的指数df_a和df_b.基本上,假设:
df_a = get_a_subset(iris)
df_b = get_b_subset(iris)
# retrieve the subset of iris that
# has all elements not in df_a or in df_b
# ...
Run Code Online (Sandbox Code Playgroud)
编辑:这是一个看似低效和不优雅的解决方案,我敢肯定大熊猫有更好的方法:
# get subset of iris that is not in a nor in b …Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的列表 (list1):
['loc1','loc3','loc6'.....]
Run Code Online (Sandbox Code Playgroud)
我还有一个如下所示的数据框 (df1):
Values Proportion
loc1 200 10
loc2 50 20
loc3 100 30
loc4 60 45
loc5 70 12
loc6 80 11
loc7 10 10
....
Run Code Online (Sandbox Code Playgroud)
我想删除数据框中我的索引与列表中的值匹配的行。结果输出文件:
Values Proportion
loc2 50 20
loc4 60 45
loc5 70 12
loc7 10 10
....
Run Code Online (Sandbox Code Playgroud)
我的解决方案是(但不起作用)。
reduced_file = set(df1.index) - list1
Run Code Online (Sandbox Code Playgroud)