首页 > 其他 > 详细

pandas:dataframe删除某些不为non的行

时间:2019-07-09 17:00:22      阅读:187      评论:0      收藏:0      [点我收藏+]

遇到一个需求,现在假设有一个这样的df,c是金额,d是月份

C            D

nan      321323                          

0          3132                                 

0          nan

nan       nan

有两个规则:1.金额不能为nan     2.金额为0月份的时候如果月份也为nan那么这条记录无效

思路:判断c不能为nan,筛选 : df1[‘C‘].notna()         然后把符合c为0 以及d为nan的那列搞死:    df2.drop(df2[(df2[‘C‘]==0) & np.isnan(df2[‘D‘])].index)

# -*- coding: utf-8 -*
import numpy as np
import pandas as pd
from pandas import Series,DataFrame

#第一个是放在df里面的随机数据,第二个是索引,也叫行,第三个叫列
df1=pd.DataFrame(
np.random.randn(4,4),
index=list(abcd),
columns=list(ABCD)
)
print(before..............)
df1.iloc[0,2]=np.nan
df1.iloc[1,2]=0
df1.iloc[2,2]=0
df1.iloc[2,3]=np.nan
print(df1)
str1 = "A"

print(after..............)
#首先判断c不能为nan df2
= df1[(df1[C].notna())] df2 = df2.drop(df2[(df2[C]==0) & np.isnan(df2[D])].index) print(df2)

 

pandas:dataframe删除某些不为non的行

原文:https://www.cnblogs.com/daysn/p/11158084.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!