Tag: pandas

pandas输出时间戳以微秒为单位

我在我的DF有微秒的分辨率,这是非常重要的,但不pipe我尝试什么,我不能让Excel显示与.xls或.xlsx微秒的分辨率。 任何想法如何让他们显示,而无需明确转换为string?

将不同列中的数据连接成一个列(pandas,python)

我正在寻找逻辑来连接许多列中的值与从.xlsx文件中的相关数据到使用Python中的pandas的单个列。 组合每个不同列的逻辑将根据列包含的信息而不同。 例如: input: ID,when_carpool,smoking,vehicle,passengers 0,weekdays,yes,truck,3 1,weekends,no,sedan,4 2,weekdays,no,van,6 3,weekdays,no,van,5 4,weekends,yes,sedan,3 我有成千上万的这些行要处理,请注意,我想转换“吸烟”列的值,所以它不是所有列的简单连接。 output: ID,carpool_info 0,weekdays+smoking+truck+3 1,weekends+nonsmoking+sedan+4 2,weekdays+nonsmoking+van+6 3,weekdays+nonsmoking+van+5 4,weekends+smoking+sedan+3

Python Pandas插入带有列值的新行

我正在做一个Python脚本来清理我们从Qualtrics收到的创业比赛的CSV文件。 到目前为止,我已经将这些数据切片,然后用Pandas将其写回到Excel文件中。 但是,我有一些列,我需要创build新的行。 例如,我们有每个团队提交 Team Name Nb of teammates Team Leader One Team Leader Two 1 x 2 Joe Joey 2 y 1 Jack … 我需要回来 Team Name Nb of teammates Team Leader 1 x 2 Joe 2 Joey 3 y 1 Jack … 这是我真实数据的一个非常简单的例子,因为有更多的列,但我想知道如何在Pandas / Python中做到这一点。 我知道这些关于插入行和索引:放大设置的讨论,但我不知道该怎么做。 谢谢你的帮助 !

迭代器遍历Excel文件

我有一些数据存储在Excel表格( .xlsx )中,我的当前Python脚本将它们读入内存中并使用它们进行计算。 我会用一个例子来解释我的脚本。 假设我的excel文件在特定列下有这样的数据: a = [1,2,3,4,5] 。 我正在使用pandas( pd.read_excel() )读取整个内存到内存中,并运行我自己的迭代器函数来获取: a0 = [1,2,3,4,5] a1 = [5,1,2,3,4] a2 = [4,5,1,2,3] 等等。 基本上我把每个元素都移动了一些整数。 a0, a1和a2在这里显示为列表,但它们是迭代器对象,我不存储它们。 正如你在这里注意到的, a0总是和a0相同a ,我不需要在内存中存储,因为我只需要它一次,这是a0所做的。 所以我想要做的是有某种迭代器对象来迭代excel文件直接捕获a0, a1和a2 ,就好像我是先导入然后迭代a0, a1, a2遍历a 。 我试图做这样的事情的原因是因为,我的脚本用于计算的时间比从Excel导入数据所需的时间短。 所以为了增加我的脚本的性能,我需要find一种方法来遍历Excel,而不是将数据保存到内存中。 我将不胜感激任何帮助。 此外,我的评论:如果pandas或其他一些图书馆readThisCell()的function,这将使我容易做我自己的Excel迭代器。 但我不知道我的select与pandas或任何其他图书馆。

如何用“偶尔”引号(R和/或Pandas)导入csv?

我今天遇到了一个新问题。 我发现了一些我正在使用的数据,看起来像这样(在csv文件中): Male,White,All Combined,1989,30-31,31,"59,546","18,141","328,235" Male,White,Felony – Drug,1989,30-31,31,"3,861","1,176","328,235" Male,White,Felony – Other,1989,30-31,31,"2,626",800,"328,235" Male,White,Felony – Property,1989,30-31,31,"3,468","1,057","328,235" Male,White,Felony – Violent/Sex,1989,30-31,31,"3,150",960,"328,235" Male,White,Misdemeanor,1989,30-31,31,"46,441","14,149","328,235" Male,White,Status,1989,30-31,31,0,0,"328,235" 很难看到问题,所以让我强调倒数第二列 : "18,141" "1,176" 800 "1,057" 960 "14,149" 0 问题是逗号被作为string导出的值,而没有逗号的值被导出为数字 。 要清楚的是,数据应该被解释为: 18141 1176 800 1057 960 14149 0 也就是说,它应该全部被解释为数字值。 但是,这让我觉得有些 “标准”应用程序正在导出这样的数据。 目前来说,这是Excel。 是否有任何有效的方法来尝试导入同一列中的这种不同的数据types的平面文件? readr库中的R( read_csv )和Python的Pandas( read_csv )都使用它们的标准标志,通过执行以下操作来解释这些数据: 假定它们都应该是数字(不pipe是否在所有“单元格”中都存在引号)。 因此,假设这些逗号必须是欧洲式的逗号(而不是美国时间)。 所以,这两个软件包都解释如下: 18.141 1.176 800 1.057 960 […]

Excel表格到有组织的pandas数据框中

我有一个Excel工作表,数据以下面的方式存储。 我想将这些数据组织成一个pandas数据框,以便它看起来像下面这样… 像这样格式化数据将使我能够轻松地使用数据透视表并进行分析。 如果在Excel中有一个简单的方法,请让我知道。 Python会是更好的select,因为我有数百个像这样的表,每个都有数百行和列。

将包含列表的DataFrame导出到Excel

所以我正在尝试使用'to_excel'方法将一个Pandas DataFrame导出到一个.xlsx文件。 我已经search过,没有发现任何似乎完全回答的问题。 问题是数据框中的单个元素是自己的列表,让我来说明一下: 假设我们有以下数据框: data = [[['a','b','c']],[['a']],[[]],[['a', 'b']],[['a']]] df = pd.DataFrame(data=data) df.to_excel('data.xlsx') 'to_excel'调用导致以下错误: TypeError: Unsupported type <class 'list'> in write() 我已经从事这个问题了,做了以下几点: for key in df: for i in df[key].index: df[key].loc[i] = ' ,'.join(df[key].loc[i]) df.to_excel('data.xlsx') 从而访问我的新程序中的文件,如下所示: newDF = pd.read_excel('data.xlsx') for key in newDF: for i in newDF[key].index: newDF[key].loc[i] = str(newDF[key].loc[i]).split(',') 但显然这感觉很荒谬,我想相信还有更好的办法。 有没有人知道更有效的方式来保存包含列表到Excel文件的数据框,或至less是更有效地执行上述操作?

为什么改写一个pandasgroupby对象作为数据框写入excel?

如果我将csv文件读入pandas数据框,然后使用groupby(pd.groupby([column1,…])),为什么我不能在新的分组对象上调用to_excel属性。 import pandas as pd data = pd.read_csv("some file.csv") data2 = data.groupby(['column1', 'column2']) data2.to_excel("some file.xlsx") #spits out an error about series lacking the attribute 'to_excel' data3 = pd.DataFrame(data=data2) data3.to_excel("some file.xlsx") #works just perfectly! 有人可以解释为什么大pandas需要经历从数据框到系列的整个转换过程吗? 我相信我的问题还不清楚。 重新构build的问题:当您使用pd.groupby()时,为什么大pandas会将数据框转换为不同types的对象(groupby对象)? 显然,您可以将此对象作为数据框来转换,其中分组的列成为(多级)索引。 为什么不这样做默认情况下(没有用户必须手动将其转换为数据框)?

Python / Pandas:循环访问数字列表

我正在尝试创build一个包含Pandas / Python和Excel文件的循环。 有问题的列被命名为“ITERATION”,它的数字范围从1到6.我试图在以下迭代范围中查询Excel文件中的点击次数: 1到2 3 4至6 我已经创build了一个名为“df”的预设数据框。 iteration_list = ["1,2", "3", "4,5,6"] i = 1 for k in iteration_list: table = df.query('STATUS == ["Sold", "Refunded"]') table["ITERATION"] = table["ITERATION"].apply(str) table = table.query('ITERATION == ["%s"]' % k) table = pd.pivot_table(table, columns=["Month"], values=["ID"], aggfunc=len) table.to_excel(writer, startrow = i) i = i + 3 上面的代码片段仅适用于数字“3”。 另外两种情况似乎不起作用,因为它直接searchstring“1,2”。 我试过其他的方法,比如: iteration_list […]

pandas与多种数据types的系列崩溃

我有一个简单的Excel文件有两列 – 一个分类列和另一个数字列,我读入pandas与read_excel函数如下 df= pd.read_excel('pandas_crasher.xlsx') 第一列是具有多种types的Objecttypes。 由于excel格式不正确,该列包含时间戳,浮点数和文本的组合。 但它通常应该只是一个简单的文本列 from datetime import datetime from collections import Counter df['random_names'].dtype DTYPE( 'O') print Counter([type(i) for i in load_instance['random_names']]) Counter({type'unicode'>:15427,type'datetime.datetime'>:18,type'float'>:2}) 当我做了一个简单的groupby,它crashes the python kernel没有任何错误消息或通知 – 我试图从jupyter和一个小的自定义烧瓶应用程序没有任何运气。 df.groupby('random_names')['random_values'].sum() <<崩溃 它是一个700kb(15k行和2列)相对较小的文件 – 所以它绝对不是一个内存问题 我试着用pdb进行debugging,以便跟踪崩溃点,但是无法越过pandas / core / groupby.py模块中的cython函数 def _cython_operation(self,kind,values,how,axis) 在pandas可能的错误 – 而不是直接崩溃不应该它抛出一个exception,并优雅地退出? 然后我使用以下函数将各种数据types转换为文本 def custom_converter(x): if isinstance(x,datetime) or isinstance( x, […]