我在词典中有一个词典,并且想使用第一个词典中的词典创建一个新的CSV文件。
我还希望具有以下标头:Original_ID,Dist,Bearing,Latitude和Longitude。
我的字典中的字典看起来像这样,(以E060作为第一个字典的键)
{'E060': {'ORIGINAL_ID': '001', 'DIST': '400.3049', 'BEARING':
'23.0495', 'LATITUDE': 19.3459, 'LONGITUDE': 130.3094} , {'E061':
{'ORIGINAL_ID': '002', 'DIST': '429.5968', 'BEARING':
'22.0284', 'LATITUDE': 13.1948, 'LONGITUDE': 139.3492} , etc , etc 100s
more}
最终目标是使用这些数据来创建一个新的CSV文件,如下所示:
ORIGINAL_ID DIST BEARING LATITUDE LONGITUDE
001 400.3049 23.0495 19.3459 130.3094
002 etc . etc . etc . etc
或者如果更简单/不太复杂,我想在另一列(即
)下将“ E060”作为另一个值包含在内 First_ID ORIGINAL_ID DIST BEARING LATITUDE LONGITUDE
E060 001 400.3049 23.0495 19.3459 130.3094
E061 002 etc . etc . etc . etc
编辑:请不要熊猫-它超出了我的领域atm。
答案 0 :(得分:0)
使用pandas
df = pd.DataFrame(d).T
>>>
BEARING DIST LATITUDE LONGITUDE ORIGINAL_ID
E060 23.0495 400.3049 19.3459 130.309 001
E061 22.0284 429.5968 13.1948 139.349 002
df.to_csv('your.csv')
如果要将索引重命名为列,请执行以下操作:
df = df.rename_axis('FIRST_ID').reset_index()
>>>
FIRST_ID BEARING DIST LATITUDE LONGITUDE ORIGINAL_ID
0 E060 23.0495 400.3049 19.3459 130.309 001
1 E061 22.0284 429.5968 13.1948 139.349 002
答案 1 :(得分:0)
首先将其更改为pandas数据框,然后转换为csv。 还有一些额外的括号,例如'E061'之前的括号,请检查一下。
import pandas as pd
df=pd.DataFrame(a)
df=df.T
df.to_csv('fineName.csv')
答案 2 :(得分:0)
非熊猫版本:
import csv
D = {'E060': {'ORIGINAL_ID': '001', 'DIST': '400.3049', 'BEARING': '23.0495',
'LATITUDE': 19.3459, 'LONGITUDE': 130.3094},
'E061': {'ORIGINAL_ID': '002', 'DIST': '429.5968', 'BEARING': '22.0284',
'LATITUDE': 13.1948, 'LONGITUDE': 139.3492}}
# open the output file in binary mode with no newline translation.
with open('out.csv','w',newline='') as file:
# Create a dictionary-per-row-based CSV writer, with columns listed.
writer = csv.DictWriter(file,fieldnames='First_ID ORIGINAL_ID DIST BEARING LATITUDE LONGITUDE'.split())
writer.writeheader() # Add a header line to the CSV.
# Iterate over the key/value pairs of the outer dictionary.
for key,dict_value in D.items():
# To keep from modifying the original value, make a copy.
row = dict_value.copy()
# Add the key value (e.g. E060) in the First_ID column.
row['First_ID'] = key
# Commit the inner dictionary values to a row of the CSV.
writer.writerow(row)
out.csv:
First_ID,ORIGINAL_ID,DIST,BEARING,LATITUDE,LONGITUDE
E060,001,400.3049,23.0495,19.3459,130.3094
E061,002,429.5968,22.0284,13.1948,139.3492