如何使用python从列中选择项目

时间:2018-10-02 17:47:30

标签: python-3.x

import pandas as pd
import glob
_path = 'B:\\Excel Files\\'


_file_list = glob.glob(_path + '*.xlsx')


concat_frame = []
for _file in _file_list:
    if '~$' in _file:
        print 'Temp file -> ', _file, ' ignored.'
    else:
    print 'Loading ' , _file 
        xl = pd.ExcelFile(_file)
        sheet_name_suffix = 'Sheet1'
        sheet_name = [s for s in xl.sheet_names if sheet_name_suffix in s][0]
        xl = xl.parse(sheet_name)
        keep_cols = ['CustID','DATE','Start_Time','CARD_NAME','Amount']
        xl = xl[keep_cols]
        concat_frame.append(xl)
master_frame = pd.concat(concat_frame, ignore_index=True)
analysis_groups = master_frame.groupby(by=['CustID','DATE','Start_Time'] & ['CARD_NAME']=='Visa')
analysis_sums = analysis_groups['Amount'].sum()
analysis_sums.reset_index().to_csv('B:\\Excel Files\\ Customerdata.csv', index=False)

我在使用此代码时遇到了麻烦,但是它可以与analysis_groups = master_frame.groupby(by=['CustID','DATE','Start_Time','CARD_NAME']一起使用,但是当我尝试过滤Visa,American Express等信用卡类型时,它不起作用。请帮忙,我在做什么错了?

1 个答案:

答案 0 :(得分:0)

如果我理解您的问题是对的,则您正在尝试基于特定的CARD_NAME过滤数据集中的行。

但是groupby是仅根据列对数据进行分组的功能。从groupby输出中,只需选择所需的特定卡名即可进行过滤。