Path 如何筛选Excel列?

Path 如何筛选Excel列?,path,Path,我正在为我的数据寻找python解决方案,该数据位于包含不同语句和数字的excel文件中。我想根据列值筛选出行 import pandas as pd df=pd.read.excel("Data.xlsx") df[df.Numbers.apply(lambda x: str(x).isdigit())] df.to_excel("Data1.xlsx") 有什么建议吗 1-如果在名为Evaluations的列中,其内容以“OBS”开头,或其中有

我正在为我的数据寻找python解决方案,该数据位于包含不同语句和数字的excel文件中。我想根据列值筛选出行


import pandas as pd
df=pd.read.excel("Data.xlsx")
df[df.Numbers.apply(lambda x: str(x).isdigit())]
df.to_excel("Data1.xlsx")


有什么建议吗

1-如果在名为Evaluations的列中,其内容以“OBS”开头,或其中有“过时”一词,则删除这些行

2-如果数字列中的列值以数字“99”或“51”开头,则删除这些行

3-如果数字列中的第5位数字是字母字符,则也删除这些行


这些是有助于匹配这些条件的正则表达式。

这里有一种使用pandas的字符串工具和布尔掩码执行过滤的方法。我分别做了每个步骤(更容易测试,将来也更容易理解)


谢谢你,@Hass但我将如何立即使用这些命令。你会写一个单行代码或者其他更好的解释吗?我是python新手
(^OBS|Obsolete)
^(99|51)
^\d{4}\w
# remove CAS and Cascade
mask = (df['Evaluations'].str.startswith('CAS') | 
        df['Evaluations'].str.contains('CASCADE'))
df = df[~mask]

# remove Numbers starting with 21 or 99
mask = (df['Numbers'].astype(str).str.startswith('21') | 
        df['Numbers'].astype(str).str.startswith('99'))
df = df[~mask]

# remove letter as 2th character (1 => zero-based indexing)
mask = df['Numbers'].astype(str).apply(lambda x: x[1].isalpha())
df = df[~mask]

# write to file
with open('Data1.xlsx', 'wb') as handle:
    df.to_excel(handle)
    
print(df)

                      Evaluations   Numbers
2  Nastolgic behaviours of people  75903324
3                    google drive  76308764
6          Tesla's new inventions  83492836
7                   Electric cars  78363522