Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从dict创建csv文件_Python_Pandas_Csv - Fatal编程技术网

Python 从dict创建csv文件

Python 从dict创建csv文件,python,pandas,csv,Python,Pandas,Csv,您好,我的问题是如何将我的词典保存在csv文件中,我已设法从不同的excel文件中收集数据,并将其保存在词典中以下是代码: import os from os import walk import pandas as pd path = r'C:\Users\Sarah\Desktop\IOMTest' my_files = [] for (dirpath, dirnames, filenames) in walk(path): my_files.extend([os.path.join(

您好,我的问题是如何将我的词典保存在csv文件中,我已设法从不同的excel文件中收集数据,并将其保存在词典中以下是代码:

import os
from os import walk
import pandas as pd 


path = r'C:\Users\Sarah\Desktop\IOMTest'
my_files = []
for (dirpath, dirnames, filenames) in walk(path):
my_files.extend([os.path.join(dirpath, fname) for fname in filenames])

print(my_files)

all_dicts_list = []
for file_name in my_files:

#Display sheets names using pandas
pd.set_option('display.width',300)
mosul_file = file_name
xl = pd.ExcelFile(mosul_file)
mosul_df = xl.parse(0, header=[1], index_col=[0,1,2])

#Read Excel and Select columns

mosul_file = pd.read_excel(file_name, sheet_name = 0 , 
index_clo=None, na_values= ['NA'], usecols = "A, E, G, H , L , M" )

#Remove NaN values

data_mosul_df = mosul_file.apply (pd.to_numeric, errors='coerce')
data_mosul_df = mosul_file.dropna()

#Save to Dictionary

datamosulx = data_mosul_df.to_dict()
all_dicts_list.append(datamosulx)
print(datamosulx)
我的问题是如何节约

datamosulx = data_mosul_df.to_dict()
all_dicts_list.append(datamosulx)
作为csv文件?
谢谢

您可以使用以下两种格式将熊猫转换为字典

它也是python中使用最广泛的模块之一

类型1:以列表作为值的字典

import pandas as pd

struct = {'ID' : ['1','2','3'], 'COST' : ['10','20','30']}
pd.DataFrame(struct).to_csv('Test.csv',header=True,index=False)
类型2:包含具有匹配键的词典的列表

import pandas as pd

struct = [{'ID': '1', 'COST': '10'}, {'ID': '2', 'COST': '20'},{'ID': '3', 'COST': '30'}]
pd.DataFrame(struct).to_csv('Test.csv',header=True,index=False)
我们使用这些结构来为数据提供一个结构


学习参考链接:

关于数据帧对象调用
到\u csv('new\u csv\u filename.csv')
函数

请尝试以下代码:

final_dataframe = pd.DataFrame(all_dicts_list)
final_dataframe.to_csv('new_csv_filename.csv')

如果
somedict
是您的字典,您可以使用如下内容:

with open('mycsvfile.csv','wb') as f:
    w = csv.writer(f)
    w.writerows(somedict.items())

如果你有一份口述清单

import csv
records = [{'first_name': 'Arun', 'age': 27, 'location': ['KL', 'IN']},
 {'last_name': 'N A', 'first_name': 'Samuel', 'age': 30}] #  Input. Here we have two rows and lets take the keys as column name.
heading_set = {k for row in records for k in list(row)} # Doing this since the keys are different in the given dict
print(f"heading is: {heading_set}")
with open('example1.csv', 'w') as opcsv:
    writer = csv.DictWriter(opcsv, fieldnames=list(heading_set))
    writer.writeheader()
    for row in records:
        for key in list(row):
            if type(row.get(key)) == list:
                row[key] = ",".join(row[key])
        writer.writerow(row)

您好,这段代码运行得很好,但是我正在尝试按列构造我的数据,但它不起作用。
datamosulx=[]结构={'placeid':[],'Families':[],'Latitude':[],'Longitude':[],'Location Name':[],'personals':[]}pd.DataFrame(struct)。to_csv(r'C:\Users\Sarah\Desktop\IOMTest\datamosulxx.csv',header=True,index=False)
Hi,我在jupyter中执行了该代码,csv文件也在创建中,列从左到右水平排列在顶部。使用空行..是的,如何使空行填充my dictionary datamosulx中的数据?如果要将字典作为数据传递给csv文件,则必须明确一点,即当您将dictionary传递到Dataframe()中时,键将被视为列,值将被视为行,因此,您可以做的不是通过此
pd.DataFrame(struct)
创建列,而是根据您的要求在字典
datamosulx
中添加键作为结构列(位置ID、族等)。最后,将该字典传递到DataFrame
pd.DataFrame(datamosulx)。到_csv('path\csv\u filename.csv')
我需要的是列表作为值的字典,但我不确定如何将其链接到我的所有目录列表。我尝试了以下代码,但似乎不起作用,我想按列排列数据:
datamosulx=[]struct={'placeid':[],'Families':[],'Latitude':[],'Longitude':[],'Location Name':[],'personals':[]}pd.DataFrame(struct).to_csv(r'C:\Users\Sarah\Desktop\IOMTest\datamosulxx.csv',header=True,index=False)
有什么提示吗?非常感谢。