如何过滤JSON dataframe中的重复值与空值并存储为数组
问题根源
你现有的代码仅替换了空字符串''为NaN,没有处理仅包含空格的空白内容,同时values.tolist()返回的是嵌套二维列表,不符合一维数组的需求。
修正后代码
import pandas as pd import numpy as np import time start = time.time() with open('stela_zerrl_t01_201222_084053_test_edited.json', 'r') as fin: df = pd.read_json(fin, lines=True) # 提取目标列→去重→移除前后空白→空内容转NaN→删空值→转一维numpy数组 parsed_data = df["SRC/Word1"].drop_duplicates().str.strip().replace('', np.NAN).dropna().to_numpy() print(parsed_data)
代码说明
- 把原来取列的方式从
[["SRC/Word1"]]改成["SRC/Word1"],直接拿到一维Series,避免后续生成二维结构 - 新增
str.strip()操作,把所有字符串前后的空白字符(空格、制表符等)统一清除,全空格的内容处理后会变成空字符串 - 最后用
to_numpy()直接输出numpy一维数组,如果你需要Python原生列表,替换成.tolist()即可,输出格式为['E1F25701', 'E15511D7'] - 顺带修正了原代码中
numpy导入未用别名np、缺time模块导入的语法问题
内容的提问来源于stack exchange,提问作者minTwin
相关产品推荐
相关产品推荐

