Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.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 如何将列出的数据集写入excel xlsx文件?_Python_Pandas_Xlsx_Xlsxwriter - Fatal编程技术网

Python 如何将列出的数据集写入excel xlsx文件?

Python 如何将列出的数据集写入excel xlsx文件?,python,pandas,xlsx,xlsxwriter,Python,Pandas,Xlsx,Xlsxwriter,我正在尝试为列出的数据集创建一个if语句,以检查if语句中的条件,如果该语句通过,则应从第[2]行和第[0]列开始,将数据集中的值添加到第一个已创建和格式化的工作表中如果未通过,则应将第二个已创建和格式化的工作表中的值添加到同一行和列索引中 我添加了两个for循环来遍历数据 import csv import xlsxwriter import pandas import pandas as pd from openpyxl import load_workbook with open(r'd

我正在尝试为列出的数据集创建一个if语句,以检查if语句中的条件,如果该语句通过,则应从第[2]行和第[0]列开始,将数据集中的值添加到第一个已创建和格式化的工作表中如果未通过,则应将第二个已创建和格式化的工作表中的值添加到同一行和列索引中

我添加了两个for循环来遍历数据

import csv
import xlsxwriter
import pandas
import pandas as pd
from openpyxl import load_workbook

with open(r'directory', 'r') as csvfile:
spamreader = csv.reader(csvfile)
newlist= list(spamreader)
#print(newlist)
#newlist = [['id', 'name', 'lastContactedTime', 'email', 'phone_phones', 'home_phones', 'mobile_phones', 'work_phones', 'fax_phones', 'other_phones', 'address_1', 'address_2', 'address_3', 'city', 'state', 'postal_code', 'country', 'tags'], ['15-contacts', 'Jane Doe', '', 'j@greenbriar.com', '', '+1 6570987234', '+1 3245687907', '+1 5678743546', '', '', '54 George street', '', '', 'Ridge Springs', 'VA', '25678', 'US', ''], ['3-contacts', 'Joe Malcoun', '2019-08-28 14:29:27', 'ceo@nutshell.com', '', '', '', '', '', '', '212 South Fifth Ave', '', '', 'Ann Arbor', 'MI', '48103', 'US', ''], ['7-contacts', 'Morgan Ramirez', '', 'mramirez@nerdy.com', '', '', '+1 6780431874', '+1 3338765438', '+1 5679876987', '', '567 one st', '', '', 'Birmingham', 'AL', '45678', 'US', ''], ['11-contacts', 'Roman Burki', '', 'burki@bvb.com', '', '', '+1 0983457690', '+1 5468756098', '', '', '546 fourteen street Nw', '', '', 'Dallas', 'TX', '54678', 'US', '']]




# I have created two worksheets, formatted them (code not included but worksheet works and added words to the cells

workbook= xlsxwriter.Workbook('Test1.xlsx')
worksheet= workbook.add_worksheet()

workbook2= xlsxwriter.Workbook('Test2.xlsx')
worksheet2= workbook2.add_worksheet()
df = pd.DataFrame(newlist[1:], columns=newlist[0])
addresses = df.address_1.tolist()


df[['name', 'id']] = df.name.str.split(' ', expand=True)

# rename id
df.rename(columns={'id': 'Lastname','name': 'Firstname','lastContactedTime': 'Company','email':'Work_email', 'other_phones':'Personal_City', 'address_1':'Work_Street', 'address_2':'Personal_Zip', 'address_3':'Personal_Street', 'city':'Work_City', 'state':'Work_State', 'postal_code':'Work_Zip', 'tags':'Personal_email'}, inplace=True)

df[['Work_email', 'Company']] = df.Work_email.str.split('@', expand=True)

df.Company = [x.strip('.com') for x in df.Company]


del df['phone_phones']
note =  [' ', ' ', ' ',' ']
df['Note'] = note


notecat =  [' ', ' ', ' ',' ']
df['Note_Category'] = notecat

title =  [' ', ' ', ' ',' ']
df['Title'] = title

Willingtoshare =  [' ', ' ', ' ',' ']
df['Willing_to_share'] = Willingtoshare

Willingtointroduce =  [' ', ' ', ' ',' ']
df['Willing_to_introduce'] = Willingtointroduce

Personalstate =[' ', ' ', ' ',' ']
df['Personal_State'] = Personalstate

df[['country_code', 'work_phones']] = df.work_phones.str.split(' ', expand=True)
del df['country_code']
del df['country']
del df['fax_phones']
del df['home_phones']
#print(df)

  Lastname Firstname  ... Willing_to_introduce Personal_State
0      Doe      Jane  ...                                    
1  Malcoun       Joe  ...                                    
2  Ramirez    Morgan  ...                                    
3    Burki     Roman  ...                                    

[4 rows x 20 columns]
excel_file = IO()

df = df[['Lastname', 'Firstname','Company','Title','Willing_to_share','Willing_to_introduce','work_phones','Work_email','Work_Street','Work_City','Work_State','Work_Zip','Personal_Street','Personal_City','Personal_State','Personal_Zip','mobile_phones','Personal_email','Note','Note_Category']]
data=df.values.tolist()
columns=df.columns
sf=df.columns.tolist()

book = load_workbook('Test1.xlsx')
writer= pd.ExcelWriter('Test1.xlsx',engine='xlsxwriter') 
writer.book = book


book2 = load_workbook('Test2.xlsx')
writer2= pd.ExcelWriter('Test2.xlsx',engine='xlsxwriter')
writer2.book2 = book2


workbook = writer.book
workbook2 = writer2.book2

worksheet = writer.sheets['Sheet1']
worksheet2 = writer.sheets['Sheet2']

value = data
for column in df:
   for col, sf in enumerate(data):
        if (column[0] != ' ' and column[1] != ' ') and ((column[2] != ' ' and column[3] != ' ') or (column[2] == ' ') and (column[6] != ' ') or (column[16] != ' ') and (column[12] != ' ' and column[13] != ' ' and column[14] != ' ' and column[15] != ' ') or (column[8] != ' ' and column[9] != ' ' and column[10] != ' ' and column[11] != ' ' and (column[7] != ' ' or column[17] != ' '))):
            worksheet.write('A3', value)
            #df.to_excel(writer, header = False, startcol=1, startrow=3)
        else:
            worksheet2.write('A3', value) 


writer.save()
writer.close()
writer2.save()
writer2.close()
workbook.close()
workbook2.close()

KeyError:“Sheet1”和我的预期输出是,它开始打印数据,但标题从A3开始,这是编辑现有工作表的方法

import csv
import pandas as pd

with open(r'C:/workbench/SemiFinale/train.csv', 'r') as csvfile:
   spamreader = csv.reader(csvfile)
   newlist= list(spamreader)

df = pd.DataFrame(newlist[1:], columns=newlist[0])

writer= pd.ExcelWriter('Test1.xlsx',engine='xlsxwriter')
df.to_excel(writer, header = False, sheet_name='Sheet1', startcol=1, startrow=10)  # startcol, startrow can be used in this condition
df.to_excel(writer, header = False, sheet_name='Sheet2', startcol=3, startrow=6)

# Above code successfully saves dataframe values in excel format
# And to satisfy your if condition you can use it as below format

# for column in df:
#    for col, sf in enumerate(data):
#       if (condition staisfied):
#          df.to_excel(writer, header = False, sheet_name='Sheet1', startcol=1, startrow=10)
#       else:
#          df.to_excel(writer, header = False, sheet_name='Sheet2', startcol=3, startrow=6)

writer.save()
writer.close()
import csv
import pandas as pd

with open(r'C:/workbench/SemiFinale/train.csv', 'r') as csvfile:
   spamreader = csv.reader(csvfile)
   newlist= list(spamreader)

df = pd.DataFrame(newlist[1:], columns=newlist[0])

# Creation of writer object 

writer= pd.ExcelWriter('Test1.xlsx',engine='xlsxwriter')

# This is first time creation and saving of file

df.to_excel(writer, header = False, sheet_name='Sheet1', startcol=5, startrow=10)  # startcol, startrow can be used in this condition
df.to_excel(writer, header = False, sheet_name='Sheet2', startcol=8, startrow=6)

#This is for reading of file, but first above code needs to be executed

workbook  = writer.book
worksheet1 = writer.sheets['Sheet1']
worksheet2 = writer.sheets['Sheet2']

value = "abc"
col_num = 10
worksheet1.write('A1', value)
workbook.close()


writer.save()
writer.close()


df.to\u excel
有什么问题吗?你想用
if
语句做什么?这是不必要的复杂。有效地址必须有街道、城市、州和邮政编码2)有效联系人必须有名字、姓氏和至少一个电话,或任何类型(个人或工作)的地址或电子邮件3)如果电话、电子邮件或地址未明确标识为个人/家庭或工作,请检查是否存在公司或职位,如果其中一个或两个存在,则假定未标记的地址、电话或电子邮件与工作相关,否则它们是不符合我们标准的个人/家庭联系人,请创建另一个excel文件并将其转储到那里。我还想从第三行开始,并排除标题。我只想写这些值1)准备数据框,2)使用
df.to_excel
如何包含for循环?在我的代码中。它还告诉我D2不是defined@mos我已经更新了代码,您只需按照您想要的方式继续条件,我已经在工作表hanks@Amit vashitha中添加了如何保存的代码,但我仍然收到一个名称错误:名称“A2”不是defined@mos我的错,它必须用引号来定义,现在再试一次。现在我得到了TypeError:write()中不支持的类型谢谢。我试过了,但它给了我一个关键错误:“Sheet1”。现在,我将在顶部向您展示我的代码的外观post@mos问题是,您正在尝试打开尚未保存的工作表,我已使用正在运行的注释更新了上述代码。您认为我可以使用writer添加格式吗?我会试着看看这是否可行,然后再打给你