Python 蟒蛇:熊猫是正确的选择吗?

Python 蟒蛇:熊猫是正确的选择吗?,python,pandas,Python,Pandas,我正在尝试获取一个1.8mB的txt文件。在其所有空格分隔的数据之后有两行标题行。我可以用熊猫来提取数据。我想对这些数据做的是: 1删去不必要的数据。即前1675行,大致上我要删除,最后3-10行,每天都在变化,我也要删除。我可以删除第一行,有点。我现在这个想法的最大问题是确定1675指针的位置在哪里。使用类似 df = df[df.year > 1978] 仅将初始“指针”移动到1675。如果我尝试 dataf = df[df.year > 1978] 它只是给了

我正在尝试获取一个1.8mB的txt文件。在其所有空格分隔的数据之后有两行标题行。我可以用熊猫来提取数据。我想对这些数据做的是:

1删去不必要的数据。即前1675行,大致上我要删除,最后3-10行,每天都在变化,我也要删除。我可以删除第一行,有点。我现在这个想法的最大问题是确定1675指针的位置在哪里。使用类似

    df = df[df.year > 1978]
仅将初始“指针”移动到1675。如果我尝试

   dataf = df[df.year > 1978]
它只是给了我一个纯拷贝,我会与第一行。它仍然保持指针指向相同的1675起点。它不允许我访问前1675行中的任何一行,但它们显然仍然存在

    df.year[0]
它返回时出现一个错误,提示第0行不存在。我必须出去搜索,找到第一个可读的行是什么…而不是全力以赴删除行并将新指针移动到0,它只是将指针移动到1675,并且不允许访问低于该值的任何内容。我还没有找到一种方法来通过编程来确定最后一行是什么,通过shell很容易,但是我需要通过程序来确定,这样我就可以为第2点设置循环

2我希望能够计算数据的平均值,“x”日移动平均值,并在计算移动平均值后使用新数据创建一个新列。我想我可以用Series语句创建新专栏……我想……我还没有尝试过,因为我还没能走到这一步

3在完成了所有这些和更多的数学运算之后,我希望能够用自制的图表来绘制数据。我想这应该很容易,一旦我完成了所有其他的事情。我已经创建了示例图,一旦有了要处理的数据,就可以在图上绘制点/线


panda是项目的正确库还是我应该尝试使用其他库?到目前为止,我做的研究越多,我得到的东西就越多,因为我不断尝试的东西让我走得更远,但同时也让我走得更远。在类似的例子中,我看到当我想对数据块进行数学运算时,提到了使用其他东西。但是他们没有任何迹象表明他使用了什么。

我认为你的方向是正确的。Pandas为您提供了对数据的良好、高级控制,因此您可以比使用传统逻辑更轻松地对其进行操作。这需要一些工作来学习。完成他们的教程,你会没事的。但是不要掩饰它们,否则你会错过一些重要的细节

我不知道你为什么会担心你想忽略的行不会被删除,只要它们没有在你的分析中使用,这其实并不重要。除非你面临内存限制,否则这可能是无关紧要的。但是,如果你真的发现你负担不起保留它们,我相信有一种方法可以真正去除它们,即使有点歪


如今,处理几兆字节的数据非常容易,熊猫将毫无问题地处理这些数据。我相信您可以轻松地将熊猫数据传递给numpy进行统计计算。不过,在你相信我之前,你应该仔细检查一下。另外,他们在熊猫网站上提到了matplotlib,所以我猜做基本的绘图也很容易

听起来你的主要问题是索引。如果要引用数据帧中的第一个内容,请使用df.iloc[0]。但不管怎样,数据帧索引都非常强大


“裁剪”行/行后,如何告知起点是什么。我知道我已经尝试过在0,df范围内计算a,但得到的错误是它不是整数。如何访问数据范围。我需要知道新的开始行和最后一行。听起来pandas会很有帮助,但目前我们无能为力,因为这个问题有太多的部分,没有示例……如果我使用df.iloc[0],我最终得到的是“DataFrame”对象没有属性“iloc”。如果我去df,它会出现关键行Int64Index:12766条目,1675到14440。很明显,这里面有些东西。我如何确定1675是第一行有“可用”数据,14440是最后一行?我希望能够通过程序而不是通过shell来实现这一点。我想写的是一个独立的程序,而不是shell例程。如果没有iloc,您可能使用的是旧版本的pandas。@升级pandas 0.12是稳定的,0.13rc也可用。