首页 > 解决方案 > 如何在 pandas 中创建 if 语句以导出到 xlsx 文件?

问题描述

我想使用 pandas 标头创建一个 if 语句,其中它将遍历四行中的每一行,其中包含数据以检查以下条件:数据应存在于每行的以下列中,以存储在工作表 1 xlsx 或它将存储在工作表 2 中 1) 名字 2) 姓氏 3) 无论是“个人”还是公司联系人,如果应该存在公司头衔,4) 联系人必须至少有一个工作或个人信息,包括一部电话或地址或电子邮件。

我尝试了 df.loc 方法,但我不知道将操作语句放在哪里

import csv
import xlsxwriter
import openpyxl
import xlrd
import pandas as pd
#I inserted file location 
with open(r'filelocation\file.csv', 'r') as csvfile:
    spamreader = csv.reader(csvfile)
    newlist= list(spamreader)

df = pd.DataFrame(newlist[1:], columns=newlist[0])
addresses = df.address_1.tolist()
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']]

row = 2
column = 0

if (df['Lastname'] != ' ' & df['Firstname'] != ' ') & ((df['Company'] != ' ' & df['Title'] != ' ') | (df['Company'] == ' ') & (df['work_phones'] != ' ') | (df['mobile_phones'] != ' ') & (df['Personal_Street'] != ' ' & df['Personal_City'] != ' ' & df['Personal_State'] != ' ' & df['Personal_Zip'] != ' ') | (df['Work_Street'] != ' ' & df['Work_City'] != ' ' & df['Work_State'] != ' ' & df['Work_Zip'] != ' ' & (df['Work_email'] != ' ' | df['Personal_email'] != ' '))):


    row += 1
    worksheet.write(row, column, df)

else:

    row += 1  
    worksheet2.write(row, column, df)

我希望从第一个 xlsx 工作表的第三行开始插入通过 if 语句的行。否则,未通过的行应从第二个 xlsx 工作表的第三行开始插入。我目前收到一个 TypeError: cannot compare a dtyped [object] array with a scalar of type [bool]

标签: pythonexcelpandasxlsx

解决方案


推荐阅读