首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >TypeError:写入()中不支持的<type 'list'>类型

TypeError:写入()中不支持的<type 'list'>类型
EN

Stack Overflow用户
提问于 2015-11-20 10:46:26
回答 1查看 8.7K关注 0票数 1

我试图通过以下几行将一堆dicts转储到.xlsx文件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
H=0.5 #Used to name the xlsx file
fail_thre=0.2 #Used to name the xlsx file
dict_list=[dict1,dict2,dict3] #The list of dictionaries to be dumped
myindex=['event 1','event 2','event 3'] #Used to name rows
from itertools import izip_longest
stats_matrix=[ tuple('dict{}'.format(i+1) for i in range(len(dict_list))) ] + list( izip_longest(*([ v for k,v in sorted(d.items())] for d in dict_list)) )
import pandas as pd
column_names=['Dict1','Dict2','Dict3']
mydf=pd.DataFrame(stats_matrix,index=myindex,columns=column_names) #Creating a data frame for MS Excel visualization
mydf.columns = ['Dict1','Dict2','Dict3']
writer = pd.ExcelWriter('Lattice_stats_H_'+str(Hurst)+'FAIL_'+str(fail_thre)+'_FLOODING.xlsx', engine='xlsxwriter')
mydf.to_excel(writer, sheet_name='Lattice')   
writer.save()

但我得到了这个错误(请注意,column_namesmydf.columns等中的名称都是我的字典的真名,太长了,无法发布):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TypeError                                 Traceback (most recent call last)
C:\Users\Francesco\Desktop\Scripts\Network_Scripts\Lattice_ForLoop_FLOODING.py in <module>()
    399 mydf.columns = ['failed_nodes_1Stage','percent_failed_haz','act_nodes_1Stage','percent_active_haz','failed_nodes_2Stage','percent_failed_conn','failed_nodes_1plus2','percent_failed_1plus2','act_nodes_2Stage','percent_active_conn','total_failed_nodes','percent_total_failed_nodes','total_active_nodes','percent_total_active_nodes','giant_component','center_giant_comp','network_diam','connectedness','average_degree', 'graph_len']
    400 writer = pd.ExcelWriter('Lattice_stats_H_'+str(Hurst)+'FAIL_'+str(fail_thre)+'_FLOODING.xlsx', engine='xlsxwriter')
--> 401 mydf.to_excel(writer, sheet_name='Lattice')
    402 writer.save()
    403 

C:\Users\Francesco\AppData\Local\Enthought\Canopy32\User\lib\site-packages\pandas\core\frame.pyc in to_excel(self, excel_writer, sheet_name, na_rep, float_format, columns, header, index, index_label, startrow, startcol, engine, merge_cells, encoding, inf_rep)
   1272         formatted_cells = formatter.get_formatted_cells()
   1273         excel_writer.write_cells(formatted_cells, sheet_name,
-> 1274                                  startrow=startrow, startcol=startcol)
   1275         if need_save:
   1276             excel_writer.save()

C:\Users\Francesco\AppData\Local\Enthought\Canopy32\User\lib\site-packages\pandas\io\excel.pyc in write_cells(self, cells, sheet_name, startrow, startcol)
   1337                 wks.write(startrow + cell.row,
   1338                           startcol + cell.col,
-> 1339                           cell.val, style)
   1340 
   1341     def _convert_to_style(self, style_dict, num_format_str=None):

C:\Users\Francesco\AppData\Local\Enthought\Canopy32\User\lib\site-packages\xlsxwriter\worksheet.pyc in cell_wrapper(self, *args, **kwargs)
     62             args = new_args
     63 
---> 64         return method(self, *args, **kwargs)
     65 
     66     return cell_wrapper

C:\Users\Francesco\AppData\Local\Enthought\Canopy32\User\lib\site-packages\xlsxwriter\worksheet.pyc in write(self, row, col, *args)
    429             pass
    430         except TypeError:
--> 431             raise TypeError("Unsupported type %s in write()" % type(token))
    432 
    433         # Finally try string.

TypeError: Unsupported type <type 'list'> in write() 

我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-20 11:08:16

您的mydf dataframe的数据单元格中有类型为list的元素。这可能是因为您是如何构建stats_matrix的。有关调用DataFrame的适当方法,请参阅DataFrame。要查找您的问题,可以调用mydf.applymap(type)并查看列表位于mydf中的位置。

如果您想要将这些列表项转换为没有大括号/括号的字符串,可以使用此函数将罪犯列转换为能够工作的列:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def list_to_number_string(value):
    if isinstance(value, (list, tuple)):
        return str(value)[1:-1]
    else:
        return value

mydf[badcol] = mydf[badcol].apply(list_to_number_string)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33833901

复制
相关文章
Spring通过URL传值不能携带"."???
原来,SpringMvc在解析URL的时候,会把最后一个"."和后面的内容解析为后缀,然后进行内容匹配
taixingyiji
2022/07/25
5900
Spring通过URL传值不能携带"."???
前端传值不能带中括号???
将前端传值通过enencodeURI()进行转义,后台部分需要通过 URLDecoder.decode()进行解析
taixingyiji
2022/07/25
9990
前端传值不能带中括号???
rmarkdown+flexdashboard制作dashboard原型
R语言作为一门统计计算和数据可视化为核心特色的工具性语言,其在可视化领域或者说数据呈现方面有着非常成熟和系统的解决方案。
数据小磨坊
2018/08/16
4.4K0
rmarkdown+flexdashboard制作dashboard原型
小程序 子组件传值(triggerEvent)
事件系统是组件间通信的主要方式之一。自定义组件可以触发任意的事件,引用组件的页面可以监听这些事件。关于事件的基本概念和用法,参见 事件 。
李才哥
2019/08/08
13.6K0
小程序 子组件传值(triggerEvent)
小程序关于switchTab不能传参的问题
微信小程序:errMsg“:“navigateTo:fail can not navigateTo a tabbar page 报错问题
江一铭
2022/06/16
7740
小程序关于switchTab不能传参的问题
多种详细讲解小程序页面传值
开发小程序,总是避免不了页面和页面之间数据共享,实现方法有很多种,今天就详细讲解下小程序页面传值,需要的朋友可以参考下。
青年码农
2020/11/19
2.1K0
多种详细讲解小程序页面传值
微信小程序页面跳转传值
第二步(B页面):利用 options 对象接收,然后就可以使用 A页面 的 flag 了
peng_tianyu
2022/12/15
1.5K0
微信小程序页面跳转传值
小程序实践(七):页面间传值
   官方提供了5种页面间的跳转方式,其中前四种跳转的时候带有url参数,用于指定跳转的页面地址,而其中前三种url中可以带有参数。
听着music睡
2018/08/02
1.1K0
小程序实践(七):页面间传值
[JS ES6]传值和传址
传值是获取一份儿相同的值,并自身重新开一份儿属于自己的内存地址,两个变量是互相独立的并不会互相影响。
坚毅的小解同志的前端社区
2022/11/28
2.7K0
[JS ES6]传值和传址
react中类组件传值,函数组件传值:父子组件传值、非父子组件传值[通俗易懂]
函数组件中我们一般情况下使用useEffect实现数据的请求 // useEffect Hook 看做 componentDidMount,componentDidUpdate 和 componentWillUnmount (加载,更新,卸载)这三个函数的组合。 语法格式: useEffect(()=>{ },[])
全栈程序员站长
2022/08/30
6.3K0
传值与传地址
很多语言在传参的时候都有一个传值和传地址(或者是引用)的问题,我想用 C++ 语言来简单的描述一下。因为我觉得无论是传值还是传址,C 或者 C++ 这两种语言都是能够比较直观的描述清楚的语言,原因是可以容易的去观察内存。其他语言也可能可以,只是其他语言的我不太知道如何去做。
码农UP2U
2020/08/26
2.3K0
传值与传地址
python接口测试:如何将A接口的返回值传递给B接口
一种方式是可以通过数据库来获取,但是通过这次接口测试,我发现读取数据库有一个缺点:速度慢
冰霜
2022/03/15
2K0
Python 传值 or 传引用
注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
宋天伦
2023/10/20
2230
微信小程序组件调用和传值
微信小程序像Vue和React一样赋于了组件的开发能力,支持组件的调用和传值,同时由于小程序上传时限制在2MB以内,对于稍微大一点的小程序组件的使用就特别重要了,下面给大家介绍下小程序的组件用法。
越陌度阡
2020/11/26
1.5K0
微信小程序—url带参传值
微信小程序不同页面间url带参传递数据 使用格式 定义跳转页面的方法 方法名( ) { wx.navigateTo({ url: '/pages/xxx/xxx?name=' +
Cikian.
2022/09/22
2.5K0
微信小程序—url带参传值
微信小程序 父子组件传值通信
微信小程序父组件往子组件传值: 父:<getCode phone="{ {phone}}" bind:myevent="onGetCode"></getCode> 通过phone=”{ {phone}}”传向子组件 子:
全栈程序员站长
2022/08/29
1.2K0
微信小程序外部向组件传值
组件 目录结构 组件 self_item.js ... #item 定义主页面传值并定义该属性的类型 properties: { item:Object } ... 组件 self_item.wxml <view class="item"> <image wx:if="{{item.image}}" class="image" src="{{item.image}}" mode="aspectFill"></image> <text class="text">{{item.
友儿
2022/09/13
6060
小程序不同页面之间的传值方式
今天来说一下小程序不同页面之间传值的几种方式: 1、URL传值 这种方式最常用,比如: wx.navigateTo({ url: '../detail/detail?cid='+cid+'&ac
连胜
2018/03/07
4.4K0
vue学习 十五 传值和传引用 or 事件传值(子传父)
传值: 传的就是字符串(string)、布尔(boolean)、数值(number);
meihuasheng
2021/03/16
2.7K0
react 父子传值_react 父子组件传值 兄弟组件传值「建议收藏」
console.log(data1, data2, e) //输出 1 2 event内容
全栈程序员站长
2022/08/27
2.5K0

相似问题

无法将值传递给DocuS传模板

14

将selectInput()值(在列名之间的选择)作为轴传递给Shiny中的ggplot()

118

将值列表传递给Shiny复选框

117

不能正确地将值从父、子传递给父、父

26

R Shiny:每年将ggplot链接到滑块

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文