小编Ste*_*eve的帖子

Python:如何最好地解析csv并仅计算子集的值

我有一个CSV文件,其中包含3列11行的以下内容,第一行是标题.我自己创建了一个简单的文件来学习.每个订单项都是一个水果订单.

OrderNo      Fruit     Origin
1           Apple        NY
2           Orange       FL      
3           Banana       CA
4           Pear         NJ
5           Grapes       VA
6           Grapes       VA
7           Grapes       MD
8           Grapes       MA
9           Pineapple    HI
10          Grapes       GA
Run Code Online (Sandbox Code Playgroud)

我试图在Python中解析这些数据,以执行以下操作:

(1)确定每种水果产生最多订单的状态和(2)确定每种水果的任何单一状态的最高订单数量,(3)按字母顺序输出该结果,如下所示:

Apple NY 1
Banana CA 1
Grapes VA 2
Orange FL 1
Pear NJ 1
Pineapple HI 1
Run Code Online (Sandbox Code Playgroud)

用csv.reader读取csv文件后,我试图用Counter和for循环完成计数:

import csv
from collections import Counter 

cnt = Counter()
f = open("/test.csv")
reader = csv.reader(f, delimiter=",")
header = next(f) 

for row in reader:   
    cnt[row[2]] += …
Run Code Online (Sandbox Code Playgroud)

python csv

1
推荐指数
1
解决办法
2006
查看次数

保留标题,同时附加到带有Python的Pandas数据帧

所以我正在解析许多文件中包含的数据,循环遍历它们并将某些元素存储在列表中,并使用Python将每个结果列表附加到带有Pandas的数据帧.

它有效,除了我无法弄清楚如何在追加时保持标题行.它会随着每个追加消失或重复.

以下代码用作最新代码的示例:

import pandas as pd

for i in range(1,4):
    data = [{'name': 'Company'+str(i), 'city': 'New York'}]

    stuff = []
    for element in data:
        stuff.append(element)

    df = pd.DataFrame(columns=["name",
                               "city"])

    for record in stuff:
        df = df.append(record, ignore_index=True)

    df.to_csv('test.csv', mode='a', header=False, index=False)
Run Code Online (Sandbox Code Playgroud)

使用此代码,输出(csv文件)是:

Company1    New York
Company2    New York
Company3    New York
Run Code Online (Sandbox Code Playgroud)

但我正在寻找输出:

name        city
Company1    New York
Company2    New York
Company3    New York
Run Code Online (Sandbox Code Playgroud)

谢谢!

python dataframe pandas

1
推荐指数
1
解决办法
4194
查看次数

标签 统计

python ×2

csv ×1

dataframe ×1

pandas ×1