pandas 写入字典_使用pandas python为csv附加字典值

本文档描述了一个Python脚本,该脚本生成一个字典并尝试将其内容以特定格式写入CSV文件。作者使用pandas的`from_dict`方法创建DataFrame,然后遇到问题:在追加模式下,CSV文件重复了`FULLNAME`列,并没有正确地将变量`args.name`的值(例如"John")写入。作者寻求解决方案以避免此问题并提高效率。
摘要由CSDN通过智能技术生成

我的python脚本生成一个字典,如下所示:

====================================================================

TL&DR

我使用from_dict方法,在从字典中创建一个数据帧时,使问题复杂化了。多亏了剑。在

换句话说,pd.DataFrame.from_dict只有当你想创建一个数据帧,其中的所有键都在一列中,所有值都在另一列中时,才需要使用pd.DataFrame.from_dict。在所有其他情况下,它与公认答案中提到的方法一样简单。在

==================================================================={u'19:00': 2, u'12:00': 1, u'06:00': 2, u'00:00': 0, u'23:00': 2, u'05:00': 2, u'11:00': 4, u'14:00': 2, u'04:00': 0, u'09:00': 7, u'03:00': 1, u'18:00': 6, u'01:00': 0, u'21:00': 5, u'15:00': 8, u'22:00': 1, u'08:00': 5, u'16:00': 8, u'02:00': 0, u'13:00': 8, u'20:00': 5, u'07:00': 11, u'17:00': 12, u'10:00': 8}

它还生成一个变量,比如full_name(作为脚本的一个参数),它的值是“John”。在

每次我运行脚本时,它都会以上述格式给我一个字典和名称。在

我想将此文件写入csv文件,以便以后按以下格式进行分析:

^{pr2}$

我要生成的代码如下:import collections

import pandas as pd

# ........................

# Other part of code, which produces the dictionary by name "data_dict"

# ........................

#Sorting the dictionary (And adding it to a ordereddict) in order to skip matching dictionary keys with column headers

data_dict_sorted = collections.OrderedDict(sorted(data_dict.items()))

# For the first time to produce column headers, I used .items() and rest of the following lines follows it.

# df = pd.DataFrame.from_dict(data_dict_sorted.items())

#For the second time onwards, I just need to append the values, I am using .values()

df = pd.DataFrame.from_dict(data_dict_sorted.values())

df2 = df.T # transposing because from_dict creates all keys in one column, and corresponding values in the next column.

df2.columns = df2.iloc[0]

df3 = df2[1:]

df3["FULLNAME"] = args.name #This is how we add a value, isn't it?

df3.to_csv('test.csv', mode = 'a', sep=str('\t'), encoding='utf-8', index=False)

我的代码生成以下csv00:00 | 01:00 | 02:00 | …….. | 22:00 | 23:00 | FULLNAME

0 | 0 | 0 | …….. | 1 | 2 | John

0 | 0 | 0 | …….. | 1 | 2 | FULLNAME

0 | 0 | 0 | …….. | 1 | 2 | FULLNAME

我的问题有两个方面:为什么在第二次迭代中打印“FULLNAME”而不是“John”(与第二次运行脚本时一样)?我错过了什么?在

有更好的方法吗?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值