Path 如何筛选Excel列?
我正在为我的数据寻找python解决方案,该数据位于包含不同语句和数字的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”开头,或其中有
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