从 X 和 Y 值在 python 中的两个 CSV 文件创建单个 CSV
Create single CSV from two CSV files with X and Y values in python
我有两个 CSV 文件;一个包含 X(经度)和另一个 Y(纬度)值(它们是 'float' 数据类型)
我正在尝试创建一个包含所有可能组合的 CSV(例如 X1,Y1;X1,Y2;X1,Y3;X2,Y1;X2,Y2;X2,Y3...等)
我写了以下部分有效的内容。但是,创建的 CSV 文件在值之间有几行,我也得到了像这样存储的值,其中列出了括号 ['20.7599'] ['135.9028']。我需要的是 20.7599, 135.9028
import csv
inLatCSV = r"C:\data\Lat.csv"
inLongCSV = r"C:\data\Long.csv"
outCSV = r"C:\data\LatLong.csv"
with open(inLatCSV, 'r') as f:
reader = csv.reader(f)
list_Lat = list(reader)
with open(inLongCSV, 'r') as f:
reader = csv.reader(f)
list_Long = list(reader)
with open(outCSV, 'w') as myfile:
for y in list_Lat:
for x in list_Long:
combVal = (y,x)
#print (combVal)
wr = csv.writer(myfile)
wr.writerow(combVal)
向 open
函数添加参数产生了不同:
with open(my_csv, 'w', newline="") as myfile:
combinations = [[y,x] for y in list_Lat for x in list_Long]
wr = csv.writer(myfile)
wr.writerows(combinations)
任何时候你在处理 csv 文件时,Pandas 都是一个很棒的工具
import pandas as pd
lats = pd.read_csv("C:\data\Lat.csv",header=None)
lons = pd.read_csv("C:\data\Long.csv",header=None)
lats['_tmp'] = 1
lons['_tmp'] = 1
df = pd.merge(lats,lons,on='_tmp').drop('_tmp',axis=1)
df.to_csv('C:\data\LatLong.csv',header=False,index=False)
我们为每个文件创建一个数据框,并将它们合并到一个临时列上,从而产生笛卡尔积。 https://pandas.pydata.org/pandas-docs/version/0.20/merging.html
我有两个 CSV 文件;一个包含 X(经度)和另一个 Y(纬度)值(它们是 'float' 数据类型)
我正在尝试创建一个包含所有可能组合的 CSV(例如 X1,Y1;X1,Y2;X1,Y3;X2,Y1;X2,Y2;X2,Y3...等)
我写了以下部分有效的内容。但是,创建的 CSV 文件在值之间有几行,我也得到了像这样存储的值,其中列出了括号 ['20.7599'] ['135.9028']。我需要的是 20.7599, 135.9028
import csv
inLatCSV = r"C:\data\Lat.csv"
inLongCSV = r"C:\data\Long.csv"
outCSV = r"C:\data\LatLong.csv"
with open(inLatCSV, 'r') as f:
reader = csv.reader(f)
list_Lat = list(reader)
with open(inLongCSV, 'r') as f:
reader = csv.reader(f)
list_Long = list(reader)
with open(outCSV, 'w') as myfile:
for y in list_Lat:
for x in list_Long:
combVal = (y,x)
#print (combVal)
wr = csv.writer(myfile)
wr.writerow(combVal)
向 open
函数添加参数产生了不同:
with open(my_csv, 'w', newline="") as myfile:
combinations = [[y,x] for y in list_Lat for x in list_Long]
wr = csv.writer(myfile)
wr.writerows(combinations)
任何时候你在处理 csv 文件时,Pandas 都是一个很棒的工具
import pandas as pd
lats = pd.read_csv("C:\data\Lat.csv",header=None)
lons = pd.read_csv("C:\data\Long.csv",header=None)
lats['_tmp'] = 1
lons['_tmp'] = 1
df = pd.merge(lats,lons,on='_tmp').drop('_tmp',axis=1)
df.to_csv('C:\data\LatLong.csv',header=False,index=False)
我们为每个文件创建一个数据框,并将它们合并到一个临时列上,从而产生笛卡尔积。 https://pandas.pydata.org/pandas-docs/version/0.20/merging.html