首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python熊猫在excel文档中同时删除行和列中没有浮点的行

如何使用python熊猫在excel文档中同时删除行和列中没有浮点的行
EN

Stack Overflow用户
提问于 2019-10-11 21:52:21
回答 2查看 121关注 0票数 1

我正在编辑一个excel文件,在这里我尝试删除所有没有数字的行( .As如下所示):

代码语言:javascript
复制
   drinks|  period| Day1|   Day2|   Day3|   Day4|   Day5|   Day6|

1   Beer1|  weekly|                     
5   Beer2|  weekly|                     
9   Beer3|  weekly| 8.0 |    6.6|    4.8|    6.9|    8.3|    8.5|

10  Beer4|  Monthly 8.0 |    6.9|    5.8|    6.7|    6.8|    6.7|

11  Beer5|  quaterly|7.3|    7.3|    7.3|    7.3|    7.3|    7.3|

13  Beer6|  weekly|                     
17  Beer7|  weekly|                     
21  Beer8|  weekly|                     
25  Beer9|  weekly|                     
29  Beer0|  weekly|          8.2|           
33  Beer1|  weekly| 6.2|                    
34  Beer2|  weekly| 6.2|     6.2|     6.2|   6.2|     6.3|    6.3|

35  Beer3|  Month | 5.4|     5.4|     5.4|   5.4|     5.4|    5.4|

37  Beer4|  weekly|                     
41  Beer5|  weekly|          8.3|     8.2|   8.2|

42  Beer6|  weekly|                          8.5|


45  Beer7|  weekly|                     
49  Beer8|  weekly|                   8.5|      
53  Beer9|  weekly|                          8.2|

我一直搞错了result.Can有人帮忙吗?

代码语言:javascript
复制
import pandas as pd

import numpy as np

excel_file_1 = 'DRINKS.xlsx'
df = pd.read_excel(excel_file_1)

df.dropna(axis=0,how='all')

print (df)

我试图删除除带有float.Note的行之外的每一行,带有浮点数的行也有字符串,预期的结果应该是:

代码语言:javascript
复制
    drinks| period| Day1|   Day2|   Day3|   Day4|   Day5|   


9   Beer3|  weekly| 8.0|    6.6|    4.8|    6.9|    8.3|    
10  Beer4|  Monthly|8.0|    6.9|    5.8|    6.7|    6.8|    
11  Beer5|  quaterly|7.3|   7.3|    7.3|    7.3|    7.3|

29  Beer1|  weekly|         8.2 |                
33  Beer2|  weekly| 6.2|                             
34  Beer3|  weekly| 6.2|    6.2|    6.2|    6.2|    6.3|    
35  Beer4|  Monthly|5.4|    5.4|    5.4|    5.4|    5.4|    
41  Beer5|  weekly| 8.3|    8.2|    8.2|         
42  Beer6| weekly|                      8.5 8.5  
49  Beer8|  weekly|             8.5              
53  Beer9|  weekly|                     8.2 8.4  
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-13 04:18:06

我终于得到了所需的结果.

代码语言:javascript
复制
import pandas as pd
import numpy as np
excel_file_1 = 'Beer.xlsx'
df1 = pd.read_excel(excel_file_1)
df1['Day1'].replace('','nan', inplace=True)
df1['Day2'].replace('','nan', inplace=True)
df1['Day3'].replace('','nan', inplace=True)
df1['Day4'].replace('','nan', inplace=True)
df1['Day5'].replace('','nan', inplace=True)
df1[Day6'].replace('','nan', inplace=True)


condition =df1 [(df1['Day1'] == 'nan') & (df1['Day2'] == 'nan') & (df1['Day3'] == 'nan') & (df1['Day4'] == 'nan') & (df1['Day5'] == 'nan') & (df1['Day6'] == 'nan')].index 

df1.drop(condition , inplace=True)

print(df1)

代码语言:javascript
复制
enter code here
票数 0
EN

Stack Overflow用户

发布于 2019-10-12 03:16:43

你可以试试这个

代码语言:javascript
复制
m=df.stack().str.contains('\d').any(level=0)
n=df.stack().str.contains('\w+').all(level=0)
df[m|n]

输出

代码语言:javascript
复制
    drink   cost    places    sold
2   beer                 2      6
3   pepsi   4.5     New Jersy   2
4   Fruit   3       Vancouver   Nan
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58348877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档