Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。

16
如何检查NaN值?
float('nan')结果为Nan(不是数字)。但是,如何检查呢?应该很容易,但是我找不到。
979 python  math 

16
使用熊猫的“大数据”工作流程
在学习熊猫的过程中,我试图迷惑了这个问题很多月。我在日常工作中使用SAS,这非常有用,因为它提供了核心支持。但是,由于许多其他原因,SAS作为一个软件也是很糟糕的。 有一天,我希望用python和pandas取代我对SAS的使用,但是我目前缺少大型数据集的核心工作流程。我不是在谈论需要分布式网络的“大数据”,而是文件太大而无法容纳在内存中,但文件又足够小而无法容纳在硬盘上。 我的第一个想法是用来HDFStore将大型数据集保存在磁盘上,然后仅将需要的部分拉入数据帧中进行分析。其他人提到MongoDB是更易于使用的替代方案。我的问题是这样的: 什么是实现以下目标的最佳实践工作流: 将平面文件加载到永久的磁盘数据库结构中 查询该数据库以检索要输入到熊猫数据结构中的数据 处理熊猫中的片段后更新数据库 现实世界中的示例将不胜感激,尤其是那些从“大数据”中使用熊猫的人。 编辑-我希望如何工作的示例: 迭代地导入一个大的平面文件,并将其存储在永久的磁盘数据库结构中。这些文件通常太大而无法容纳在内存中。 为了使用Pandas,我想读取这些数据的子集(通常一次只读取几列),使其适合内存。 我将通过对所选列执行各种操作来创建新列。 然后,我将不得不将这些新列添加到数据库结构中。 我正在尝试找到执行这些步骤的最佳实践方法。阅读有关熊猫和pytables的链接,似乎添加一个新列可能是个问题。 编辑-专门回答杰夫的问题: 我正在建立消费者信用风险模型。数据类型包括电话,SSN和地址特征;财产价值;犯罪记录,破产等贬义信息。我每天使用的数据集平均有近1,000到2,000个字段,这些字段是混合数据类型:数字和字符数据的连续,名义和有序变量。我很少追加行,但是我确实执行许多创建新列的操作。 典型的操作涉及使用条件逻辑将几个列合并到一个新的复合列中。例如,if var1 > 2 then newvar = 'A' elif var2 = 4 then newvar = 'B'。这些操作的结果是数据集中每个记录的新列。 最后,我想将这些新列添加到磁盘数据结构中。我将重复步骤2,使用交叉表和描述性统计数据探索数据,以寻找有趣的直观关系进行建模。 一个典型的项目文件通常约为1GB。文件组织成这样的方式,其中一行包含消费者数据记录。每条记录的每一行都有相同的列数。情况总是如此。 创建新列时,我会按行进行子集化是非常罕见的。但是,在创建报告或生成描述性统计信息时,对行进行子集化是很常见的。例如,我可能想为特定业务创建一个简单的频率,例如零售信用卡。为此,除了我要报告的任何列之外,我将只选择那些业务线=零售的记录。但是,在创建新列时,我将拉出所有数据行,而仅提取操作所需的列。 建模过程要求我分析每一列,寻找与某些结果变量有关的有趣关系,并创建描述这些关系的新复合列。我探索的列通常以小集合形式完成。例如,我将集中讨论一组20个仅涉及属性值的列,并观察它们与贷款违约的关系。一旦探索了这些列并创建了新的列,我便转到另一组列,例如大学学历,并重复该过程。我正在做的是创建候选变量,这些变量解释我的数据和某些结果之间的关系。在此过程的最后,我应用了一些学习技术,这些技术可以根据这些复合列创建方程。 我很少向数据集添加行。我几乎总是会创建新列(统计/机器学习术语中的变量或功能)。

14
@property装饰器如何工作?
我想了解内置函数的property工作原理。令我感到困惑的是,property它还可以用作装饰器,但是仅当用作内置函数时才接受参数,而不能用作装饰器。 这个例子来自文档: class C(object): def __init__(self): self._x = None def getx(self): return self._x def setx(self, value): self._x = value def delx(self): del self._x x = property(getx, setx, delx, "I'm the 'x' property.") property的论点是getx,setx,delx和文档字符串。 在下面的代码中property用作装饰器。它的对象是x函数,但是在上面的代码中,参数中没有对象函数的位置。 class C(object): def __init__(self): self._x = None @property def x(self): """I'm the 'x' property.""" return self._x …

23
在Python Pandas中向现有DataFrame添加新列
我有以下索引的DataFrame,其中的命名列和行不是连续数字: a b c d 2 0.671399 0.101208 -0.181532 0.241273 3 0.446172 -0.243316 0.051767 1.577318 5 0.614758 0.075793 -0.451460 -0.012493 我想'e'在现有数据框架中添加一个新列,并且不想更改数据框架中的任何内容(即,新列始终与DataFrame具有相同的长度)。 0 -0.335485 1 -1.166658 2 -0.385571 dtype: float64 如何e在上述示例中添加列?

30
我如何获得执行Python程序的时间?
我在Python中有一个命令行程序,需要花一些时间才能完成。我想知道完成跑步所需的确切时间。 我看过该timeit模块,但似乎仅适用于少量代码段。我想安排整个节目的时间。
975 python  time 

24
如何将文本文件读入字符串变量并删除换行符?
我使用以下代码段在python中读取文件: with open ("data.txt", "r") as myfile: data=myfile.readlines() 输入文件为: LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE 当我打印数据时 ['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE'] 如我所见,数据是list形式形式的。我如何使其成为字符串?而且我怎么删除"\n","["以及"]"从中字符?
960 python  string 





16
什么是mixin,为什么它们有用?
在“ Python编程 ”中,Mark Lutz提到了“ mixins”。我来自C / C ++ / C#背景,以前没有听说过这个词。什么是mixin? 在本示例的两行之间进行阅读(我已经链接到它,因为它很长),我认为这是使用多重继承来扩展类而不是“适当的”子类的一种情况。这是正确的吗? 为什么我要这样做而不是将新功能放入子类中?因此,为什么混合/多重继承方法比使用组合更好? 什么将mixin与多重继承分开?这仅仅是语义问题吗?

22
在Python中创建单例
这个问题不是为了讨论是否需要单例设计模式,是否是反模式,还是针对任何宗教战争,而是要讨论如何以最pythonic的方式在Python中最好地实现此模式。在这种情况下,我将“最pythonic”定义为表示它遵循“最少惊讶的原理”。 我有多个将成为单例的类(我的用例用于记录器,但这并不重要)。当我可以简单地继承或修饰时,我不希望增加gumph来使几个类杂乱无章。 最佳方法: 方法1:装饰器 def singleton(class_): instances = {} def getinstance(*args, **kwargs): if class_ not in instances: instances[class_] = class_(*args, **kwargs) return instances[class_] return getinstance @singleton class MyClass(BaseClass): pass 优点 装饰器的添加方式通常比多重继承更直观。 缺点 使用MyClass()创建的对象将是真正的单例对象,而MyClass本身是一个函数,而不是类,因此您不能从中调用类方法。也就m = MyClass(); n = MyClass(); o = type(n)();这样m == n && m != o && n != …

21
有没有一种简单的方法可以按值删除列表元素?
a = [1, 2, 3, 4] b = a.index(6) del a[b] print(a) 上面显示了以下错误: Traceback (most recent call last): File "D:\zjm_code\a.py", line 6, in <module> b = a.index(6) ValueError: list.index(x): x not in list 所以我必须这样做: a = [1, 2, 3, 4] try: b = a.index(6) del a[b] except: pass print(a) 但是,没有简单的方法可以做到这一点吗?
942 python  list 



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.