Python 使用Pandas从混合格式csv文件中提取字符

Python 使用Pandas从混合格式csv文件中提取字符,python,csv,pandas,Python,Csv,Pandas,因此,我有一个.csv文件,看起来像这样: station_id year january february ... december 210018 1916 nodata 221 417a 210018 1917 17b 98 44 .... 210252 1910 54e 110 nodata 210252 1911 99d 24i 77 ... 我需要从数据

因此,我有一个.csv文件,看起来像这样:

station_id year january february ... december
210018     1916 nodata  221          417a
210018     1917 17b     98           44
....
210252     1910 54e     110          nodata
210252     1911 99d     24i          77
...
我需要从数据中提取a到I(a-I)的字母。这些字母表示每月缺失的天数:a表示缺失1天,我表示缺失9天。现在我不关心“nodata”单元格。从数据单元格中提取字母后,我想计算每月缺失天数的总数:

station_id year january february ... december N_missingdays
210018     1916 nodata  221          417      1(a)
210018     1917 17      98           44       11(b+i)
....
210252     1910 54      110          nodata   8(e+c)
210252     1911 99      24           77       13(d+i)
也许,最好的方法是创建一个带有station_id、年份和缺失天数的字典。以下是我想做的:

with open('filepath') as file:
    file_reader = reader(file)
    for i,row in enumerate(file_reader):
        for j,item in enumerate(row):
           if item[len(item)-1]=='a':
                file_reader[i][j]=''
                print file_reader
但是这个函数只是从文件中删除字母,它不能正常工作。我不知道如何从.csv文件中提取字母并计算它们的含义。 我想做的另一件事是:

with open('filepath') as file:
    file_reader = reader(file)
        next(file_reader)
        letters_dict={}
        for row in file_reader:
            station_id,year,months = row[1],row[2],row[4:]
            letters_list[station_id,year] = months.count('[0-9][a]') + ... + months.count('[0-9][i]') + letters_dict.get(year, 0) + letters_dict.get(station_id,0)

但是这段代码在字典中只写零。

您可能应该尝试进行某种df.stack().value_counts()计算。不知道如何将end analsyis分解为带有列名的groubpy语句。函数值\u计数不起作用-我试过了。