python - 如何在 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]
解决方案
推荐阅读
- visual-studio-code - 使 VSCode 修剪仅包含空格的行,但不修剪带有尾随空格的文本行
- sql - 即使使用 group by 也会返回重复的行
- apple-push-notifications - Java 1.6 支持向 Apple 的新 HTTP/2 规范发送通知负载
- python - 如何在此裁剪图像中获取 x,y,w,h 的每个值?
- docker - 如何部署到云 -> 我有一个在 nginx 上运行的烧瓶应用程序 dockerized 在两个不同的容器中
- typescript - 如何让扩展添加自定义组件?
- speech-recognition - 是否可以自定义 Azure Speech Studio 评估准确性测试中使用的标准?
- python - 将具有许多整数的字符串转换为列表不同整数的最快方法
- jmespath - 提取使用 JMES 路径存储的值
- r - 如何排列或对齐renderUI的输出