制作成对的文件和列以供循环使用?

时间:2018-11-02 09:00:01

标签: python pandas

我想循环制作一对文件和需要的列。

我认为字典可以,但是不确定。

示例:

files: file1,file2,file3,etc

dict1 = ({file1:its needed columns,file2:its needed columns})

稍后它将在此功能中使用:

for i in dict1: # below it reads the files from arcpy - not important 
    df = pd.DataFrame.from_records(data=arcpy.da.SearchCursor("key_of_dict",
                                                     ['the_one_column','the_other_column'])

    #then make a new column that will apply the value_counts to a certain column
    df['count_of_a_col']=[df['one_col'].value_counts().loc[x] for x in df['one_col']]

我该如何做?

注意

每个文件中的列并不总是相同的。 对于一个文件,我们需要两个特定的列,而对于另一个文件则完全不同。这就是为什么我考虑使用字典。

1 个答案:

答案 0 :(得分:1)

您在寻找这个吗?

dict1 = {'file_name_1': ['on_column', 'another_column'], 'file_name_2': ['again_column']}
for k, v in dict1.items():
    df = pd.DataFrame.from_records(data=arcpy.da.SearchCursor(k, v))
    column_for_count = v[1] if len(v) >= 2 else v[0]
    df['count_of_' + column_for_count]=[df[column_for_count].value_counts().loc[x] for x in df[column_for_count]]
    # do what you want with v