我想问一下这个问题,因为我创建了这样的代码,但是它只返回了标头。
以下是我的df名称df_all的示例
Doc name count year
[A1,A2] John 1 2018
[A1,A3] Mark 0 2018
[A2,A4] John 3 2018
这是我尝试过的代码
n_wsp_71 = [i for i in df_all if i.count != 0]
n_wsp_71
这是我的结果
['Doc', 'name', 'count', 'year']
但是我希望看到这个结果
newdf
Doc name count year
[A1,A2] John 1 2018
[A2,A4] John 3 2018
答案 0 :(得分:2)
df = pd.DataFrame({"Doc": [["A1","A2"], ["A1","A3"], ["A2","A4"]], "name": ["John", "Mark", "John"], "count": [1,0,3], "year": [2018, 2018, 2018]})
df2 = df.query("count!=0").reset_index(drop=True)
# for count = 0
df2 = df.query("count==0").reset_index(drop=True)
#method 2
df2 = df[~(df["count"].isin(['0']))].reset_index(drop=True)
# for count = 0
df2 = df[(df["count"].isin(['0']))].reset_index(drop=True)
print(df2)
输出:
Doc name count year
0 [A1, A2] John 1 2018
1 [A2, A4] John 3 2018
Doc name count year
0 [A1, A3] Mark 0 2018
答案 1 :(得分:1)
您正在对熊猫数据框进行列表理解,这将永远无法工作
所以您必须这样做:
list_all=list_all[list_all['count']!=0]
现在:
print(list_all)
是:
Doc name count year
[A1,A2] John 1 2018
[A2,A4] John 3 2018