You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Python代码读取CSV垂直列数据并统计三元组模式?

读取CSV列数据并统计连续三元组模式的修改方案

你只需要把手动定义的data列表替换为从CSV文件读取的列数据,以下是两种实用修改方法:

方法1:用Python内置csv模块(无需额外安装依赖)

完整代码如下,核心是读取CSV指定列并转为列表,原统计逻辑完全保留:

import csv

# 从CSV读取目标列数据到列表
data = []
# 替换成你的CSV文件实际路径,比如'./my_data.csv'
with open('your_data.csv', 'r', newline='', encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile)
    # 如果CSV文件没有表头,删掉这一行
    next(reader)
    for row in reader:
        # 取每行第一列数据,要读其他列就改索引(第二列是row[1])
        if row:  # 跳过空行避免报错
            data.append(row[0])

# 以下是原统计逻辑,无需修改
pattern_counts = {}

for i in range(len(data)-2):
    pattern = str(data[i]) + str(data[i+1]) + str(data[i+2])
    if pattern in pattern_counts:
        pattern_counts[pattern] += 1
    else:
        pattern_counts[pattern] = 1

for pattern, count in pattern_counts.items():
    print("{}: {}".format(pattern, count))

方法2:用pandas库(代码更简洁,需先执行pip install pandas安装)

如果习惯用数据分析工具,pandas能更高效处理列数据:

import pandas as pd

# 读取CSV文件,替换为你的文件路径
df = pd.read_csv('your_data.csv')
# 替换为目标列的列名,比如'value_col';用df.iloc[:,0]可直接按索引取第一列
data = df['value_col'].dropna().tolist()  # dropna()自动过滤空值

# 原统计逻辑完全保留
pattern_counts = {}

for i in range(len(data)-2):
    pattern = str(data[i]) + str(data[i+1]) + str(data[i+2])
    if pattern in pattern_counts:
        pattern_counts[pattern] += 1
    else:
        pattern_counts[pattern] = 1

for pattern, count in pattern_counts.items():
    print("{}: {}".format(pattern, count))

内容的提问来源于stack exchange,提问作者Paul Adeleke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:07:38