我想循环制作一对文件和需要的列。
我认为字典可以,但是不确定。
示例:
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']]
我该如何做?
注意
每个文件中的列并不总是相同的。 对于一个文件,我们需要两个特定的列,而对于另一个文件则完全不同。这就是为什么我考虑使用字典。
答案 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