正则表达式划分CSV

这篇博客介绍了一个使用正则表达式处理CSV数据的方法,通过Java代码展示了如何匹配和分割包含引号的CSV字段,确保正确处理包含逗号和双引号的复杂情况。在测试案例中,代码成功地将示例CSV字符串拆分为多个字段并打印出来。
摘要由CSDN通过智能技术生成
《精通正则表达式》 第401页

    public static List splitCSV(String txt) {

        String reg = " \\G(?:^|,)(?:\"([^\"]*+(?:\"\"[^\"]*+)*+)\"|([^\",]*+))";
      // 即  \G(?:^|,)(?:"([^"]*+(?:""[^"]*+)*+)"|([^",]*+))

        Matcher matcherMain = Pattern.compile(reg).matcher("");
1)实现步骤: 1.1 读取 Excel 文件 使用 Pandas 库的 read_excel() 函数读取 Excel 文件中的数据,并将数据存储在 DataFrame 中。 示例代码: ```python import pandas as pd df = pd.read_excel('商圈数据.xlsx') ``` 1.2 创建新的工作表 使用 Pandas 库的 ExcelWriter() 函数创建一个新的 Excel 文件,并在其中创建多个工作表,每个工作表对应一个区。 示例代码: ```python # 创建一个新的 Excel 文件 writer = pd.ExcelWriter('商圈数据_按区划分.xlsx') # 遍历每个区,创建对应的工作表 for area in df['区'].unique(): # 根据区名筛选数据 area_data = df[df['区'] == area] # 将数据存储到新的工作表中 area_data.to_excel(writer, sheet_name=area, index=False) # 保存 Excel 文件 writer.save() ``` 1.3 统计每个区的商铺数量并绘制条状图 使用 Pandas 库的 groupby() 函数对每个区进行分组,并使用 count() 函数统计每个区的商铺数量。 使用 Matplotlib 库的 bar() 函数绘制条状图,将每个区的商铺数量作为条状图的高度。 示例代码: ```python import matplotlib.pyplot as plt # 对每个区进行分组统计商铺数量 area_counts = df.groupby('区')['商铺名称'].count() # 绘制条状图 plt.bar(area_counts.index, area_counts.values) # 设置图表标题和横纵坐标标签 plt.title('重庆市各区商铺数量') plt.xlabel('区') plt.ylabel('商铺数量') # 显示图表 plt.show() ``` 2)增加难度(选做): 2.1 读取 POI 文件 使用 Pandas 库的 read_csv() 函数读取 POI 文件中的数据,并将数据存储在 DataFrame 中。 示例代码: ```python import pandas as pd df = pd.read_csv('POI数据.csv') ``` 2.2 正则表达式检索信息 使用 Python 的 re 模块可以方便地进行正则表达式的匹配。 示例代码: ```python import re # 匹配座机号码 pattern = r'\d{3,4}-\d{7,8}' # 从商铺名称和地址中提取座机号码 phone_numbers = [] for name, address in zip(df['名称'], df['地址']): # 将商铺名称和地址拼接起来 text = name + ' ' + address # 使用正则表达式匹配座机号码 match = re.search(pattern, text) if match: phone_numbers.append(match.group()) # 输出座机号码列表 print(phone_numbers) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值