datafram的各类数值索引选取,以isnull选取空值行(非空值行)的操作为例

假如df为datafram格式,df['index']为series格式,df[['index']]为datafram格式

1.判断series是否是空,判断非空数值

pd.isnull(row)#row为series值

row.notnull() ##row为series,和上面功能一样

if (pd.notnull(row["Date"]))&(pd.notnull(row["Coupon_id"])): #row为DataFram格式

2.非空数值选取,选取满足条件的某列,最后数据形式是datafram

u1=fdf[pd.notnull(fdf['Date_received'])][['User_id']] ##fdf为datafram,最后u1为datafram格式,拥有User_id这一列
u1['u_coupon_count'] = 1 ##u1新增一列,值全部为1

u3=fdf[((pd.notnull(fdf['Date']))&(pd.notnull(fdf['Date_received'])))][['User_id']].copy()

 um3 = fdf[fdf['Date_received'].notnull()][['User_id', 'Merchant_id']].copy()
 df.loc[df.country=='Italy']  ##选取country 列全是‘Italy’的数据

3.选取符合条件的所有datafram,包含行和列

feature=row[(row['Date'] < 20160516) | ((pd.isnull(row['Date'])) & (row['Date_received'] < 20160516))].copy() ##综合条件选取,feature为datafram且包含多列

dataset = row[(row['Date_received'] >= 20160516) & (row['Date_received'] <= 20160615)]  #row为datafram

4.对某列进行条件选择

data_train.Age[data_train.Pclass == 1]  ##满足pclass==1的部分age列数据,
Survived_0 = data_train.Embarked[data_train.Survived == 0]

df.loc[(df.Cabin.notnull()), 'Cabin' ] = "Yes"  ##把cabin列非空数值转换成yes

dataset.loc[(dataset['Age'] > 16) & (dataset['Age'] <= 32), 'Age'] = 1

5.选取某行

means = row[['Distance', 'label']].groupby(['label']).mean()
col1 = float(means.loc[1])  ##1为index的索引值

df.loc[['a','b']]#a,b两行

df.loc[df['third']>3]#选取在third列中值大于3的行

train_test.loc[train_test["Fare"].isnull()] ##series.loc是在index寻找

train_test.loc[train_test["Age"].isnull()]['Survived'].mean()##查看缺失年龄的人的死亡率

6.选取某行某列

df.loc['a':'c','fir']#这是a到c行返回fir这一列的值

loc 不仅可以输入数字也可以直接column名字,注意先行后列

df.loc[[0, 1, 10, 100], ['country', 'province', 'region_1', 'region_2']]

表示index(行)为0,1,10,100,列名为'country', 'province', 'region_1', 'region_2'。
 

 

 

选取DataFrame中为空的,可以使用pandas中的.isnull()和.any()方法。首先,使用.isnull()方法找到DataFrame中的空值元素。然后,使用.any()方法判断该是否有空值。最后,使用布尔索引来选择为空的。下面是一个示例代码: ``` import pandas as pd # 创建DataFrame n = np.arange(20, dtype=float).reshape(5,4) n = np.nan index = ['index1', 'index2', 'index3', 'index4', 'index5'] columns = ['column1', 'column2', 'column3', 'column4'] frame3 = pd.DataFrame(data=n, index=index, columns=columns) # 选取为空的 null_rows = frame3[frame3.isnull().any(axis=1)] print(null_rows) ``` 运以上代码,将会输出DataFrame中为空的。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python-pandas.DataFrame-找出有空值](https://blog.csdn.net/weixin_46599926/article/details/124479796)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [pandas.DataFrame选取/排除特定的方法](https://download.csdn.net/download/weixin_38653602/12867853)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值