Pandas: 根据列中的空值将数据框拆分

4

我有一个如下的数据框:

data = [['lynda', 10,'F',125,'5/21/2018'],['tom', np.nan,'M',135,'7/21/2018'], ['nick', 15,'F',99,'6/21/2018'], ['juli', 14,np.nan,120,'1/21/2018'],['juli', 19,np.nan,140,'10/21/2018'],['juli', 18,np.nan,170,'9/21/2018']]
df = pd.DataFrame(data, columns = ['Name', 'Age','Gender','Height','Date'])

df

快照

如何基于Gender列的np.NaN值来转换数据框?

我想将原始数据框df分成两部分:

  • 包含gender列的前三行,只保留Name、Age、Gender、Height和Date列的数据框df1
  • 不包含gender列的后三行,只保留Name、Age、Height和Date列的数据框df2
1个回答

5
这是一种方法:
import pandas as pd
import numpy as np


data = [['lynda', 10,'F',125,'5/21/2018'],['tom', np.nan,'M',135,'7/21/2018'], ['nick', 15,'F',99,'6/21/2018'], ['juli', 14,np.nan,120,'1/21/2018'],['juli', 19,np.nan,140,'10/21/2018'],['juli', 18,np.nan,170,'9/21/2018']]
df = pd.DataFrame(data, columns = ['Name', 'Age','Gender','Height','Date'])

df2 = df[df['Gender'].notnull()].drop("Gender", axis=1)
print(df2)

输出:

    Name   Age  Height       Date
0  lynda  10.0     125  5/21/2018
1    tom   NaN     135  7/21/2018
2   nick  15.0      99  6/21/2018

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接