如何按数据类型拆分列值,分别创建字符串集合与数值集合?
分离某列的字符串与数值类型值到不同集合
假设你有一列混合了字符串和数值类型的数据,下面直接给出Python环境下的实现方案:
基础列表场景实现
# 模拟目标列的混合数据 mixed_data = ["cat", 78, "dog", 34.5, "bird", 901, 6.78] # 初始化两个空集合 string_set = set() numeric_set = set() # 遍历数据分类存储 for item in mixed_data: if isinstance(item, str): string_set.add(item) elif isinstance(item, (int, float)): numeric_set.add(item) # 查看结果 print("字符串集合:", string_set) print("数值集合:", numeric_set)
Pandas数据框列场景实现
如果是处理Pandas数据框中的列,代码可以调整为:
import pandas as pd # 模拟数据框 df = pd.DataFrame({"target_col": ["apple", 123, "banana", 45.6, "cherry", 789]}) # 筛选并转换为集合 string_values = set(df["target_col"][df["target_col"].apply(lambda x: isinstance(x, str))]) numeric_values = set(df["target_col"][df["target_col"].apply(lambda x: isinstance(x, (int, float)))])
关键说明
- 用
isinstance()做类型判断,能精准区分字符串和数值(如果需要排除布尔值,可以在判断时加上not isinstance(item, bool)) - 集合自动去重,若需要保留重复项,把
set()换成list()即可
内容的提问来源于stack exchange,提问作者di1a
相关产品推荐
相关产品推荐

