选择性地删除数据帧,以便数据帧的长度不同

2024-03-29 12:25:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图删除数据帧nan中的df值,但是我很难在不影响整行的情况下删除每列的值。下面是我的df的一个例子。你知道吗

Advertising No Advertising
nan          7.0
71.0         nan
65.0         nan
14.0         nan
76.0         nan
nan          36.0
nan          9.0
73.0         nan
85.0         nan
17.0         nan
nan          103.0

我想要的输出如下所示。你知道吗

Advertising No Advertising
71.0        7.0
65.0        36.0 
14.0        9.0
76.0        103.0 
73.0         
85.0                     
17.0                       

给出的示例只是整个数据帧的一个片段。你知道吗

任何帮助都将不胜感激。你知道吗


Tags: 数据no示例df情况nan例子advertising
1条回答
网友
1楼 · 发布于 2024-03-29 12:25:56

justify^{}一起使用:

df = pd.DataFrame(justify(df.values, invalid_val=np.nan, axis=0, side='up'), 
                  index=df.index, 
                  columns=df.columns).dropna(how='all')
print (df)
    Advertising  No Advertising
0          71.0             7.0
1          65.0            36.0
2          14.0             9.0
3          76.0           103.0
4          73.0             NaN
5          85.0             NaN
6          17.0             NaN

另一个较慢的解决方案是将^{}^{}一起使用:

df = df.apply(lambda x: pd.Series(x.dropna().values))
print (df)

   Advertising  No Advertising
0         71.0             7.0
1         65.0            36.0
2         14.0             9.0
3         76.0           103.0
4         73.0             NaN
5         85.0             NaN
6         17.0             NaN

把数字和字符串(空字符串)混合在一起不是个好主意,因为如果需要处理数字,函数就会失败,所以最好不要这样做。你知道吗

但可以通过以下方式实现:

df = df.fillna('')

相关问题 更多 >