您的位置:首页 > 健康 > 养生 > 北京软件外包_哪家公司的网站做得好_谷歌优化师_专业推广公司

北京软件外包_哪家公司的网站做得好_谷歌优化师_专业推广公司

2025/2/28 13:43:51 来源:https://blog.csdn.net/weixin_30777913/article/details/145598002  浏览:    关键词:北京软件外包_哪家公司的网站做得好_谷歌优化师_专业推广公司
北京软件外包_哪家公司的网站做得好_谷歌优化师_专业推广公司
import pandas as pd# 假设df是原始DataFrame
# allowed_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"#$%&'()*+,-./:;<=>?@[]^_`{|}~"def filter_invalid_rows(df):# 定义允许的字符集合allowed_chars = set("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"#$%&'()*+,-./:;<=>?@[]^_`{|}~")# 选择所有字符串类型的列str_columns = df.select_dtypes(include=['object']).columns.tolist()# 创建空的目标DataFrameresult_df = pd.DataFrame(columns=df.columns)# 遍历每一行for idx, row in df.iterrows():invalid_found = False# 检查每个字符串列for col in str_columns:cell_value = row[col]# 跳过空值if pd.isna(cell_value):continue# 将单元格值转换为字符串str_value = str(cell_value)# 检查每个字符for char in str_value:if char not in allowed_chars:invalid_found = Truebreak  # 发现非法字符即跳出字符循环if invalid_found:break  # 发现非法字符即跳出列循环# 如果发现非法字符则保留该行if invalid_found:result_df = pd.concat([result_df, row.to_frame().T], ignore_index=True)return result_df# 使用示例
if __name__ == "__main__":# 创建示例数据data = {'id': [1, 2, 3],'name': ['Alice', 'Bòb', 'Charlie'],'email': ['alice@example.com', 'bob@测试.com', 'charlie@valid.com'],'age': [25, 30, 35]}df = pd.DataFrame(data)# 执行过滤filtered_df = filter_invalid_rows(df)# 导出到Excelfiltered_df.to_excel("filtered_results.xlsx", index=False)print("过滤完成,结果已保存到filtered_results.xlsx")

代码说明:

  1. allowed_chars集合包含了所有允许的字符,使用set类型便于快速查找
  2. 使用select_dtypes选择所有object类型的列(通常对应字符串列)
  3. 通过逐行逐列检查每个字符的方式验证数据
  4. 使用pd.concat动态添加包含非法字符的行到结果DataFrame
  5. 最终结果导出为Excel文件

注意:

  • 该代码会保留原始数据的所有列和数据类型
  • 空值(NaN)会被自动跳过不做检查
  • 包含中文、特殊符号(如测试中的汉字)等不在允许字符列表中的内容会被过滤出来
  • 导出的Excel文件名可以通过修改to_excel参数调整

示例数据中:

  • 第二行"Bòb"包含字符ò
  • 第二行"bob@测试.com"包含汉字
    这些非法字符所在的行都会被过滤到结果文件中。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com