我有字典:
#file1 mentions 2 columns while file2 mentions 3
dict2 = ({'file1' : ['colA', 'colB'],'file2' : ['colY','colS','colX'], etc..})
我想对每个文件在新列中进行上述列的串联。 这应该是自动化的。
for k, v in dict1.items():
df = pd.DataFrame.from_records(data=arcpy.da.SearchCursor(k, v)) #reads to a df
df['new'] = df['first_col'].astype(str) + df['second_col'] etc.. #concatenation
我如何每次都可以独立于每本词典中的列数进行这项工作?
只需连接所有提到的列。
示例:
a = {'colA' : [123,124,112,165],'colB' :['alpha','beta','gamma','delta']}
file1 = pd.DataFrame(data = a)
file1
colA colB
123 alpha
124 beta
112 gamma
165 delta
b = {'colY' : [123,124,112,165],'colS' :['alpha','beta','gamma','delta'], 'colX' :[323,326,378,399] }
file2 = pd.DataFrame(data = b)
file2
colY colS colX
123 alpha 323
124 beta 326
112 gamma 378
165 delta 399
结果:
file1
col_all
123 alpha
124 beta
112 gamma
165 delta
file2
call_all
123 alpha 323
124 beta 326
112 gamma 378
165 delta 399
答案 0 :(得分:1)
我相信您需要改变:
df['new'] = df['first_col'].astype(str) + df['second_col']
将所有列转换为字符串,然后用apply
和join
axis=1
将它们按行处理:
df['new'] = df.astype(str).apply(' '.join, axis=1)