Python如何从不同的文件在CSV文件中添加列?
我有4个CSV文件。 我可以合并所有4个,但有一个问题 这是一个名为services.csv的文件Python如何从不同的文件在CSV文件中添加列?,python,pandas,csv,Python,Pandas,Csv,我有4个CSV文件。 我可以合并所有4个,但有一个问题 这是一个名为services.csv的文件 ServiceID Service 1 General Practitioner 2 Pathology 3 Radiology 4 Psychiatry 5 Chiropratic 还有另一个文件(“我把它命名为test.csv”) 现在,我必须根据测试文件中的ServiceID从Service.csv文件中添加服务列 我可以合并所有文件,但我不知道如何执行上述操作 T
ServiceID Service
1 General Practitioner
2 Pathology
3 Radiology
4 Psychiatry
5 Chiropratic
还有另一个文件(“我把它命名为test.csv”)
现在,我必须根据测试文件中的ServiceID从Service.csv文件中添加服务列
我可以合并所有文件,但我不知道如何执行上述操作
Things that I Have to achieve:
1) Add Service column into the test.csv file
2) make the entries in the Service Column using the Service.csv file data.
谁能帮帮我吗。我不知道如何解决这个问题。我认为需要在ServiceID
之后添加DataFrame
s和新列:
df1 = pd.read_csv('services.csv')
df2 = pd.read_csv('test.csv')
#get position of ServiceID column
pos = df2.columns.get_loc('ServiceID') + 1
df2.insert(pos, 'Service', df2['ServiceID'].map(df1.set_index('ServiceID')['Service']))
print (df2)
ClinicServiceID ClinicID ServiceID Service \
0 1 1 1 General Practitioner
1 2 1 2 Pathology
2 3 2 1 General Practitioner
3 4 2 2 Pathology
4 5 2 3 Radiology
Name Suburb State Postcode \
0 Hurstville Clinic Hurstville NSW 1493
1 Hurstville Clinic Hurstville NSW 1493
2 Sydney Centre Clinic Sydney NSW 2000
3 Sydney Centre Clinic Sydney NSW 2000
4 Sydney Centre Clinic Sydney NSW 2000
Email Lat Lon
0 hurstville@myclinic.com.au -33.975869 151.088939
1 hurstville@myclinic.com.au -33.975869 151.088939
2 sydney@myclinic.com.au -33.867139 151.207114
3 sydney@myclinic.com.au -33.867139 151.207114
4 sydney@myclinic.com.au -33.867139 151.207114
谢谢你的帮助。但我需要一个又一个的服务栏,还有一个额外的栏。它起作用了,谢谢。index=false会删除额外的列吗?@Damian-是的,如果考虑
df.to_csv(file,index=false)
Hi@jezrael,在这种情况下,我们将获得索引器
,可以吗explain@pyd-谢谢你的评论。我测试了它,发现min
不是必需的,因为pos=df2.columns.get_loc('Lon')+1
工作正常-在最后一列之后添加。
df1 = pd.read_csv('services.csv')
df2 = pd.read_csv('test.csv')
#get position of ServiceID column
pos = df2.columns.get_loc('ServiceID') + 1
df2.insert(pos, 'Service', df2['ServiceID'].map(df1.set_index('ServiceID')['Service']))
print (df2)
ClinicServiceID ClinicID ServiceID Service \
0 1 1 1 General Practitioner
1 2 1 2 Pathology
2 3 2 1 General Practitioner
3 4 2 2 Pathology
4 5 2 3 Radiology
Name Suburb State Postcode \
0 Hurstville Clinic Hurstville NSW 1493
1 Hurstville Clinic Hurstville NSW 1493
2 Sydney Centre Clinic Sydney NSW 2000
3 Sydney Centre Clinic Sydney NSW 2000
4 Sydney Centre Clinic Sydney NSW 2000
Email Lat Lon
0 hurstville@myclinic.com.au -33.975869 151.088939
1 hurstville@myclinic.com.au -33.975869 151.088939
2 sydney@myclinic.com.au -33.867139 151.207114
3 sydney@myclinic.com.au -33.867139 151.207114
4 sydney@myclinic.com.au -33.867139 151.207114