为了账号安全,请及时绑定邮箱和手机立即绑定

自动连接任意数量的列?

自动连接任意数量的列?

墨色风雨 2021-08-05 17:46:44
我有一本字典:#file1 mentions 2 columns while file2 mentions 3dict2 = ({'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)file1colA   colB123    alpha124    beta112    gamma165    deltab = {'colY' : [123,124,112,165],'colS' :['alpha','beta','gamma','delta'], 'colX' :[323,326,378,399] }file2 = pd.DataFrame(data = b)file2colY  colS      colX123   alpha     323124   beta      326112   gamma     378165   delta     399
查看完整描述

2 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

使用时只需pd.concat()用axis=1:


import pandas as pd


a = {'colA' : [123,124,112,165],'colB' :['alpha','beta','gamma','delta']}

b = {'colY' : [123,124,112,165],'colS' :['alpha','beta','gamma','delta'], 'colX' :[323,326,378,399] }


df = pd.concat([pd.DataFrame(i) for i in [a,b]], axis=1)

产量:


   colA   colB  colY   colS  colX

0   123  alpha   123  alpha   323

1   124   beta   124   beta   326

2   112  gamma   112  gamma   378

3   165  delta   165  delta   399


查看完整回答
反对 回复 2021-08-05
  • 2 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号