如何在Python Pandas中将字符串拆分至同一列且不影响原数据集?
解决多值邮政编码列的频次统计问题
直接用pandas的str.split配合explode方法就能搞定,完全不会改动原数据集,步骤如下:
第一步:把多值单元格拆成列表,再展开为单列
假设你的数据集名叫df,执行下面的代码生成单独的邮编列:# 拆分并展开,不修改原数据集 zipcodes_single_col = df['Zipcode(s)'].str.split(', ', expand=False).explode()这里
str.split(', ', expand=False)会把每个单元格里的邮编转成列表,explode则把列表中的每个元素拆成单独的行,最终得到所有邮编的单列数据。第二步:统计热门邮编
直接对展开后的列用value_counts():# 统计每个邮编的出现次数,默认按频次降序排列 top_zipcodes = zipcodes_single_col.value_counts() # 查看结果 print(top_zipcodes)
额外处理:避免空格干扰
如果你的数据里存在邮编前后带空格(比如有的单元格是1234,5678而不是1234, 5678),可以先做清洗,确保同一个邮编不会被重复统计:
# 先去除所有空格,再拆分展开 zipcodes_cleaned = df['Zipcode(s)'].str.replace(' ', '', regex=False).str.split(',', expand=False).explode() # 再统计 zipcodes_cleaned.value_counts()
内容的提问来源于stack exchange,提问作者Chanel Loski
相关产品推荐
相关产品推荐

