在python中,如果单元格在数据帧中为NaN,则删除该单元格

在python中,如果单元格在数据帧中为NaN,则删除该单元格,python,pandas,dataframe,data-analysis,Python,Pandas,Dataframe,Data Analysis,我有一个这样的数据帧 Project 4 Project1 Project2 Project3 0 NaN laptio AB NaN 1 NaN windows ten NaN 0 one NaN NaN 1 two NaN NaN 我想从Project 4列中删除NaN值 我期望的输出应该

我有一个这样的数据帧

   Project 4    Project1    Project2    Project3
0   NaN         laptio          AB      NaN
1   NaN         windows         ten     NaN
0   one         NaN             NaN
1   two         NaN             NaN
我想从Project 4列中删除NaN值

我期望的输出应该是

df


如果数据帧的索引只是标准的0到n顺序整数,则可以将Project4列弹出为一个系列,删除NaN值,重置索引,然后将其与数据帧合并

import pandas a pd

df = pd.DataFrame([[pd.np.nan, 1,2,3],
                   [pd.np.nan, 4,5,6],
                   ['one',7,8,9],
                   ['two',10,11,12]], columns=['p4','p1','p2','p3'])

s = df.pop('p4')
pd.concat([df, ps.dropna().reset_index(drop=True)], axis=1)

# returns:
   p1  p2  p3   p4
0   1   2   3  one
1   4   5   6  two
2   7   8   9  NaN
3  10  11  12  NaN

Project3列中的第三个NaN来自哪里?我猜有空表示的单元格包含空字符串?是的@Goyo,下面的答案对我有用。谢谢,我能用这个dropna试着用append代替concat吗
import pandas a pd

df = pd.DataFrame([[pd.np.nan, 1,2,3],
                   [pd.np.nan, 4,5,6],
                   ['one',7,8,9],
                   ['two',10,11,12]], columns=['p4','p1','p2','p3'])

s = df.pop('p4')
pd.concat([df, ps.dropna().reset_index(drop=True)], axis=1)

# returns:
   p1  p2  p3   p4
0   1   2   3  one
1   4   5   6  two
2   7   8   9  NaN
3  10  11  12  NaN