Questions tagged «pandas»

Pandas是用于数据处理和分析的Python库,例如,在统计,实验科学结果,计量经济学或金融学中常见的数据框,多维时间序列和横截面数据集。Pandas是Python中主要的数据科学库之一。

2
'DataFrame'对象没有属性'sort'
我在这里遇到一些问题,在我的python包中,我已经安装了numpy,但是我仍然遇到此错误'DataFrame'对象没有属性'sort' 任何人都可以给我一些想法。 这是我的代码: final.loc[-1] =['', 'P','Actual'] final.index = final.index + 1 # shifting index final = final.sort() final.columns=[final.columns,final.iloc[0]] final = final.iloc[1:].reset_index(drop=True) final.columns.names = (None, None)

5
为熊猫MultiIndex设置一个级别
经过分组后,我创建了一个具有MultiIndex的DataFrame: import numpy as np import pandas as p from numpy.random import randn df = p.DataFrame({ 'A' : ['a1', 'a1', 'a2', 'a3'] , 'B' : ['b1', 'b2', 'b3', 'b4'] , 'Vals' : randn(4) }).groupby(['A', 'B']).sum() df Output> Vals Output> A B Output> a1 b1 -1.632460 Output> b2 0.596027 Output> a2 …
101 python  pandas 

2
熊猫:在数据框中创建两个新列,并使用从现有列中计算出的值
我正在使用pandas库,我想将两个新列添加到df具有n列(n> 0)的数据框中。 这些新列是由于将函数应用于数据框中的某一列而产生的。 要应用的功能如下: def calculate(x): ...operate... return z, y 为仅返回值的函数创建新列的一种方法是: df['new_col']) = df['column_A'].map(a_function) 因此,我想要的但尝试失败的(*)是这样的: (df['new_col_zetas'], df['new_col_ys']) = df['column_A'].map(calculate) 实现此目的的最佳方法是什么?我毫无头绪地扫描了文档。 ** df['column_A'].map(calculate)返回一个熊猫系列,每个项目都由一个元组z,y组成。尝试将其分配给两个数据框列会产生ValueError。*
100 python  pandas 

8
熊猫可以绘制日期直方图吗?
我已经将我的Series系列产品,并将其强制为dtype =的datetime列datetime64[ns](尽管仅需要日期分辨率...不确定如何更改)。 import pandas as pd df = pd.read_csv('somefile.csv') column = df['date'] column = pd.to_datetime(column, coerce=True) 但是绘图不起作用: ipdb> column.plot(kind='hist') *** TypeError: ufunc add cannot use operands with types dtype('<M8[ns]') and dtype('float64') 我想绘制一个直方图,该直方图仅按周,月或年显示日期计数。 当然有办法做到pandas吗?

7
如何在Pandas DataFrame中移动列
我想在Pandas中移动一列DataFrame,但是我无法在不重写整个DF的情况下从文档中找到一种方法来做到这一点。有人知道怎么做吗?数据框: ## x1 x2 ##0 206 214 ##1 226 234 ##2 245 253 ##3 265 272 ##4 283 291 所需的输出: ## x1 x2 ##0 206 nan ##1 226 214 ##2 245 234 ##3 265 253 ##4 283 272 ##5 nan 291
100 python  pandas  dataframe 

5
按位置选择熊猫列
我只是想通过整数访问命名的熊猫列。 您可以使用来按位置选择一行df.ix[3]。 但是如何按整数选择一列呢? 我的数据框: df=pandas.DataFrame({'a':np.random.rand(5), 'b':np.random.rand(5)})
100 python  pandas  indexing 

1
读取pandas数据框的前几行的方法
是否有内置的使用方式 read_csv仅读取n文件的前几行而无需提前知道行的长度?我有一个大文件,需要花费很长时间才能读取,偶尔只想使用前20行来获取它的样本(并且不希望加载完整的文件并花大头)。 如果我知道总行数,则可以执行类似的操作footer_lines = total_lines - n并将其传递给skipfooter关键字arg。我当前的解决方案是n使用python和StringIO 手动将第一行抓取到熊猫: import pandas as pd from StringIO import StringIO n = 20 with open('big_file.csv', 'r') as f: head = ''.join(f.readlines(n)) df = pd.read_csv(StringIO(head)) 并没有那么糟,但是有没有更简洁的“ pandasic”(?)方式来处理关键字或其他内容呢?
100 python  pandas  csv  dataframe 

9
从熊猫返回多列apply()
我有一个熊猫DataFrame ,df_test。它包含一列“大小”,以字节为单位表示大小。我已经使用以下代码计算了KB,MB和GB: df_test = pd.DataFrame([ {'dir': '/Users/uname1', 'size': 994933}, {'dir': '/Users/uname2', 'size': 109338711}, ]) df_test['size_kb'] = df_test['size'].astype(int).apply(lambda x: locale.format("%.1f", x / 1024.0, grouping=True) + ' KB') df_test['size_mb'] = df_test['size'].astype(int).apply(lambda x: locale.format("%.1f", x / 1024.0 ** 2, grouping=True) + ' MB') df_test['size_gb'] = df_test['size'].astype(int).apply(lambda x: locale.format("%.1f", x / 1024.0 ** 3, …

4
Numpy isnan()在浮点数组上失败(适用于pandas数据框)
我有一个浮点数数组(一些正常数字,一些nans),它们是从对熊猫数据框的应用中得出的。 由于某种原因,numpy.isnan在此数组上失败,但是,如下所示,每个元素都是浮点数,numpy.isnan在每个元素上正确运行,变量的类型肯定是一个numpy数组。 这是怎么回事?! set([type(x) for x in tester]) Out[59]: {float} tester Out[60]: array([-0.7000000000000001, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, …
100 python  arrays  numpy  pandas 

3
获取pandas.read_csv以将空值读取为空字符串而不是nan
我正在使用pandas库读取一些CSV数据。在我的数据中,某些列包含字符串。该字符串"nan"是一个可能的值,一个空字符串也可以。我设法让大熊猫将“ nan”读取为字符串,但是我不知道如何获取不读取空值的NaN。这是示例数据和输出 One,Two,Three a,1,one b,2,two ,3,three d,4,nan e,5,five nan,6, g,7,seven >>> pandas.read_csv('test.csv', na_values={'One': [], "Three": []}) One Two Three 0 a 1 one 1 b 2 two 2 NaN 3 three 3 d 4 nan 4 e 5 five 5 nan 6 NaN 6 g 7 seven 它正确地写着“男”为字符串“南”,但仍读取空单元格作为NaN的。我想传递str的converters参数read_csv(带converters={'One': str})),但它仍然读取空单元格作为NaN的。 我意识到我可以在读取后使用fillna填充值,但是真的没有办法告诉熊猫特定CSV列中的空单元格应被读取为空字符串而不是NaN吗?
100 python  csv  pandas 

4
排序数据框后更新索引
采取以下数据框架: x = np.tile(np.arange(3),3) y = np.repeat(np.arange(3),3) df = pd.DataFrame({"x": x, "y": y}) x y 0 0 0 1 1 0 2 2 0 3 0 1 4 1 1 5 2 1 6 0 2 7 1 2 8 2 2 我需要x首先对其进行排序,然后仅需按其进行排序y: df2 = df.sort(["x", "y"]) x y 0 …
100 python  pandas 


2
用python熊猫装箱列
我有一个带有数值的数据框列: df['percentage'].head() 46.5 44.2 100.0 42.12 我想查看该列作为箱数: bins = [0, 1, 5, 10, 25, 50, 100] 我如何将结果作为垃圾箱value counts? [0, 1] bin amount [1, 5] etc [5, 10] etc ......

6
如何按多列过滤熊猫数据框
要按单列过滤数据帧(df),如果我们考虑男性和女性的数据,则可以: males = df[df[Gender]=='Male'] 问题1-但是,如果数据跨越多年并且我只想看2014年的男性,该怎么办? 在其他语言中,我可能会做类似的事情: if A = "Male" and if B = "2014" then (除了我要执行此操作,并在新的数据框对象中获取原始数据框的子集) 问题2。如何循环执行此操作,并为每个唯一的年份和性别集创建一个数据框对象(例如,2013-男,2013-女,2014-男和2014-女的df for y in year: for g in gender: df = .....
99 python  filter  pandas 

7
如何在Python Pandas中的两个值之间选择DataFrame中的行?
我试图将DataFrame修改df为仅包含其列中的值在closing_price99到101之间的行,并尝试使用下面的代码执行此操作。 但是,我得到了错误 ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all() 我想知道是否有一种方法可以不使用循环。 df = df[(99 <= df['closing_price'] <= 101)]
99 python  pandas 

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.