如何使python代码接受任何csv列名
我希望我的代码能够识别具有特定编号(如坐标编号(3°12'45.5”)的csv列,并拆分坐标编号。我的意思是,我希望代码能够接受任何csv列名。在下面的代码中,代码只能接受列名(“lat”、“long”)被分配到csv文件。如果我决定读取另一个具有不同列名的csv文件,我必须更改代码中的列名。我的目标是,尽管更改了csv文件,但我不想更改代码中的列名。以下是csv文件中的表格示例如何使python代码接受任何csv列名,python,pandas,dataframe,csv,split,Python,Pandas,Dataframe,Csv,Split,我希望我的代码能够识别具有特定编号(如坐标编号(3°12'45.5”)的csv列,并拆分坐标编号。我的意思是,我希望代码能够接受任何csv列名。在下面的代码中,代码只能接受列名(“lat”、“long”)被分配到csv文件。如果我决定读取另一个具有不同列名的csv文件,我必须更改代码中的列名。我的目标是,尽管更改了csv文件,但我不想更改代码中的列名。以下是csv文件中的表格示例 lat long 3°34'45.5"N 8°18'45.5"E 3°5
lat long
3°34'45.5"N 8°18'45.5"E
3°56'60.5"N 8°12'72.5"E
3°12'45.5"N 8°12'45.5"E
3°03'55.5"N 7°16'45.5"E
到目前为止,我掌握的代码是:
import pandas as pd
read= pd.read_csv(r"C:\Users\Temmy\Documents\COORD.csv", sep=",",
engine="python",names=None)
#### csv column name is called "lat"#####
latt=pd.DataFrame(read['lat'].str.split(r'[°\'"]',3).tolist(),columns= ['degree','m','s','t'])
df=latt.drop('t',1)
df=df.apply(pd.to_numeric)
divide= df/[1,60,3600]
df["latitude"]=divide.sum(axis=1)
print(df["latitude"])
#### csv column name is called "long"#####
longg=pd.DataFrame(read['long'].str.split(r'[°\'"]',3).tolist(),columns= ['degree','m','s','t'])
df1=longg.drop('t',1)
df1=df1.apply(pd.to_numeric)
divide= df1/[1,60,3600]
df1["longitude"]=divide.sum(axis=1)
print(df1["longitude"])
mergee= pd.concat([df1["longitude"],df["latitude"]], axis=1)
print(mergee)
如果我正确理解了您的问题,这将有助于:
pd.read_csv(r"C:\Users\Temmy\Documents\COORD.csv", skiprows=1, names=['lat', 'long'])
在这里,您可以阅读有关read\u csv
参数的更多信息: