繁体   English   中英

raise ValueError("无法将 {0!r} 转换为 Excel".format(value))

[英]raise ValueError("Cannot convert {0!r} to Excel".format(value))

我正在尝试使用df.dropna函数,并且我想使用和使用符号“,”和或使用符号“|”多次嵌套它根据文档https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html#pandas.DataFrame.dropna 在我的代码中,我将一个 csv 文件转换为 Pandas,然后我正在调整列中的数据

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']]
##print(df)
## Lastname Firstname          Company Title Willing_to_share  \
0       Doe      Jane                                           
1   Malcoun       Joe  8/28/2019 14:29                          
2   Ramirez    Morgan                                           
3     Burki     Roman                                           
4      None    Jordan                                           
5      None                                                     
6  Zachuani     Reemo                                           
7    Suarez   Geraldo     
 Willing_to_introduce work_phones              Work_email  \
0                       5678743546        j@greenbriar.com   
1                             None        ceo@nutshell.com   
2                       3338765438      mramirez@nerdy.com   
3                       5468756098           burki@bvb.com   
4                             None  jordanw45490@gmail.com   
5                             None                   ronny   
6                             None                           
7                             None   

              Work_Street      Work_City Work_State Work_Zip Personal_Street  \
0        54 George street  Ridge Springs         VA    25678                   
1     212 South Fifth Ave      Ann Arbor         MI    48103                   
2              567 one st     Birmingham         AL    45678                   
3  546 fourteen street Nw         Dallas         TX    54678                   
4                                                                              
5                                                                              
6                                                                              
7       456 yellow street                                                      

  Personal_City Personal_State Personal_Zip mobile_phones Personal_email Note  \
0                                              3245687907                       
1                                                    None                       
2                                              6780431874                       
3                                              0983457690                       
4                                                    None                       
5                                                    None                       
6                                                    None                       
7                                                    None                       

  Note_Category  
0                
1                
2                
3                
4                
5                
6                
7                

我在 if 语句之前创建了工作簿

wb = Workbook()
ws = wb.active
wb.title = 'Contacts'
wb2 = Workbook()
ws2 = wb2.active
wb2.title = 'Contacts'

我将列标题放在函数中。 我想要实现的是找到有效的行,这些行必须具有名字、姓氏和至少一个电话,或任何类型(个人或工作)的地址或电子邮件,不为空。 然后我将把它放在一个excel数据表中。 然后是第二个数据表中的函数的反函数

r1 = df.dropna(subset=['Firstname', 'Lastname', ('work_phones' or 'mobile_phones') or (('Work_City','Work_Street','Work_State','Work_Zip') or ('Personal_Street','Personal_City','Personal_State','Personal_Zip')) or ('Work_email' or 'Personal_email')])

for r in dataframe_to_rows(r1, index=False, header=False):
   ws2.append(r)


wb.save("Accepted Contacts.xlsx")

但是,当我运行它时出现此错误

raise ValueError("Cannot convert {0!r} to Excel".format(value))



ValueError: Cannot convert ['Doe', 'Jane', nan, nan, nan, nan, '5678743546', 'j@greenbriar.com', '54 George street', 'Ridge Springs', 'VA', '25678', nan, nan, nan, nan, '3245687907', nan, nan, nan] to Excel

我是 Python 和学习基础知识的新手。 我在粗体突出显示的行中可能遇到相同的错误,我怀疑它与浮点转换有关。

该代码只是通过乘以 90% 并将 excel 保存在新工作表中来转换列值

import openpyxl as xl
wb = xl.load_workbook('transactions.xlsx') # Load workbook excel
sheet = wb['Sheet1'] # Load Sheet in which you need to work
cell = sheet['a1']
cell = sheet.cell(1,1)

for row in range(2, sheet.max_row + 1):
    cell = sheet.cell(row, 3)
    corrected_price = cell.value * 0.9
    corrected_price_cell = sheet.cell(row, 4)
    **corrected_price_cell.value = corrected_price_cell**

# wb.save('transactions2.xlsx')

所以我正在试验 SQL 和 openpyxl。 今天我遇到了同样的错误。

对我来说,这是 SQL 解析我的数据的方式。 因为我在 SQL 上有一些可变长度的列表,excel 不知道把它们放在哪里。 我解决了我的问题,弹出导致问题的数据并单独放置。 请记住首先检查您的结果是什么类型的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM