Questions tagged «pandas»

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

3
使用pandas GroupBy.agg()对同一列进行多次聚合
是否有熊猫内置的方法将两个不同的聚合函数f1, f2应用于同一列df["returns"],而无需agg()多次调用? 示例数据框: import pandas as pd import datetime as dt pd.np.random.seed(0) df = pd.DataFrame({ "date" : [dt.date(2012, x, 1) for x in range(1, 11)], "returns" : 0.05 * np.random.randn(10), "dummy" : np.repeat(1, 10) }) 语法上错误但直观上正确的方法是: # Assume `f1` and `f2` are defined for aggregating. df.groupby("dummy").agg({"returns": f1, "returns": f2}) 显然,Python不允许重复的键。还有其他表达方式agg()吗?也许元组列表[(column, …

14
如何在pandas数据框上显示所有列名称?
我有一个包含数百列的数据框,我需要查看所有列名称。 我做了什么: In[37]: data_all2.columns 输出为: Out[37]: Index(['customer_id', 'incoming', 'outgoing', 'awan', 'bank', 'family', 'food', 'government', 'internet', 'isipulsa', ... 'overdue_3months_feature78', 'overdue_3months_feature79', 'overdue_3months_feature80', 'overdue_3months_feature81', 'overdue_3months_feature82', 'overdue_3months_feature83', 'overdue_3months_feature84', 'overdue_3months_feature85', 'overdue_3months_feature86', 'loan_overdue_3months_total_y'], dtype='object', length=102) 如何显示所有列,而不是截断的列表?
127 python  pandas  dataframe  show 

5
将缺失的日期添加到熊猫数据框
我的数据可以在给定日期包含多个事件,也可以在一个日期包含否事件。我接受这些事件,按日期计数并绘制它们。但是,当我绘制它们时,我的两个系列并不总是匹配。 idx = pd.date_range(df['simpleDate'].min(), df['simpleDate'].max()) s = df.groupby(['simpleDate']).size() 在上面的代码中,idx变为30个日期范围。2013/09/01至2013/09/30但是S可能只有25或26天,因为在给定日期没有事件发生。然后,当我尝试绘制时,由于大小不匹配,我得到一个AssertionError: fig, ax = plt.subplots() ax.bar(idx.to_pydatetime(), s, color='green') 解决这个问题的正确方法是什么?我是否要从IDX中删除没有值的日期,或者(我希望这样做)是将序列中缺少的日期添加为0(我希望这样做)?我希望有30天的完整图表(值为0)。如果这种方法正确,那么有关如何开始使用的任何建议?我需要某种动态reindex功能吗? 这是S(df.groupby(['simpleDate']).size() )的代码段,请注意没有输入04和05。 09-02-2013 2 09-03-2013 10 09-06-2013 5 09-07-2013 1
126 python  date  plot  pandas  dataframe 

6
使用熊猫合并时如何保持索引
我想合并两个DataFrames,并保留第一帧的索引作为合并数据集中的索引。但是,当我进行合并时,所得的DataFrame具有整数索引。如何指定要保留左侧数据框中的索引? In [4]: a = pd.DataFrame({'col1': {'a': 1, 'b': 2, 'c': 3}, 'to_merge_on': {'a': 1, 'b': 3, 'c': 4}}) In [5]: b = pd.DataFrame({'col2': {0: 1, 1: 2, 2: 3}, 'to_merge_on': {0: 1, 1: 3, 2: 5}}) In [6]: a Out[6]: col1 to_merge_on a 1 1 b 2 3 c …
126 python  pandas 

4
熊猫中的datetime dtypes read_csv
我正在读取具有多个datetime列的csv文件。我需要在读取文件时设置数据类型,但是日期时间似乎是个问题。例如: headers = ['col1', 'col2', 'col3', 'col4'] dtypes = ['datetime', 'datetime', 'str', 'float'] pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes) 运行时出现错误: TypeError:不了解数据类型“ datetime” 事后通过pandas.to_datetime()转换列不是一个选项,我不知道哪些列将是datetime对象。该信息可以更改,并且可以从通知我的dtypes列表的任何信息中获取。 另外,我尝试用numpy.genfromtxt加载csv文件,在该函数中设置dtypes,然后转换为pandas.dataframe,但它会使数据乱码。任何帮助是极大的赞赏!

4
如何从熊猫的两列中形成元组列
我有一个Pandas DataFrame,我想将'lat'和'long'列组合成一个元组。 <class 'pandas.core.frame.DataFrame'> Int64Index: 205482 entries, 0 to 209018 Data columns: Month 205482 non-null values Reported by 205482 non-null values Falls within 205482 non-null values Easting 205482 non-null values Northing 205482 non-null values Location 205482 non-null values Crime type 205482 non-null values long 205482 non-null values lat 205482 non-null …


9
python pandas删除重复的列
从数据框中删除重复列的最简单方法是什么? 我正在通过以下方式读取具有重复列的文本文件: import pandas as pd df=pd.read_table(fname) 列名是: Time, Time Relative, N2, Time, Time Relative, H2, etc... 所有“时间”和“相对时间”列均包含相同的数据。我想要: Time, Time Relative, N2, H2 我所有的删除,删除等尝试,例如: df=df.T.drop_duplicates().T 导致唯一值索引错误: Reindexing only valid with uniquely valued index objects 很抱歉成为熊猫的菜鸟。任何建议,将不胜感激。 额外细节 熊猫版本:0.9.0 Python版本:2.7.3 Windows 7 (通过Pythonxy 2.7.3.0安装) 数据文件(注意:在实际文件中,列由制表符分隔,此处它们由4个空格分隔): Time Time Relative [s] N2[%] Time Time …
125 python  pandas 

10
如何使用python中的pandas获取所有重复项的列表?
我列出了可能存在一些出口问题的物品清单。我想获得重复项的列表,以便可以手动比较它们。当我尝试使用pandas 重复方法时,它仅返回第一个重复。有没有办法获取所有重复项,而不仅仅是第一个? 我的数据集的一个小部分看起来像这样: ID,ENROLLMENT_DATE,TRAINER_MANAGING,TRAINER_OPERATOR,FIRST_VISIT_DATE 1536D,12-Feb-12,"06DA1B3-Lebanon NH",,15-Feb-12 F15D,18-May-12,"06405B2-Lebanon NH",,25-Jul-12 8096,8-Aug-12,"0643D38-Hanover NH","0643D38-Hanover NH",25-Jun-12 A036,1-Apr-12,"06CB8CF-Hanover NH","06CB8CF-Hanover NH",9-Aug-12 8944,19-Feb-12,"06D26AD-Hanover NH",,4-Feb-12 1004E,8-Jun-12,"06388B2-Lebanon NH",,24-Dec-11 11795,3-Jul-12,"0649597-White River VT","0649597-White River VT",30-Mar-12 30D7,11-Nov-12,"06D95A3-Hanover NH","06D95A3-Hanover NH",30-Nov-11 3AE2,21-Feb-12,"06405B2-Lebanon NH",,26-Oct-12 B0FE,17-Feb-12,"06D1B9D-Hartland VT",,16-Feb-12 127A1,11-Dec-11,"064456E-Hanover NH","064456E-Hanover NH",11-Nov-12 161FF,20-Feb-12,"0643D38-Hanover NH","0643D38-Hanover NH",3-Jul-12 A036,30-Nov-11,"063B208-Randolph VT","063B208-Randolph VT", 475B,25-Sep-12,"06D26AD-Hanover NH",,5-Nov-12 151A3,7-Mar-12,"06388B2-Lebanon NH",,16-Nov-12 CA62,3-Jan-12,,, D31B,18-Dec-11,"06405B2-Lebanon NH",,9-Jan-12 20F5,8-Jul-12,"0669C50-Randolph VT",,3-Feb-12 8096,19-Dec-11,"0649597-White River …

2
如何使用Pandas创建随机整数的DataFrame?
我知道如果我使用randn, import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD')) 给了我我想要的东西,但是带有正态分布的元素。但是,如果我只想要随机整数怎么办? randint通过提供范围来工作,但不能像提供数组那样randn工作。那么我该如何使用某个范围之间的随机整数呢?

6
有条件替换熊猫
我有一个DataFrame,我想用超过零的值替换特定列中的值。我以为这是实现此目标的一种方式: df[df.my_channel > 20000].my_channel = 0 如果将通道复制到新的数据框中,这很简单: df2 = df.my_channel df2[df2 > 20000] = 0 这完全符合我的要求,但似乎无法与通道一起用作原始DataFrame的一部分。

8
熊猫groupby:如何获得字符串的并集
我有一个这样的数据框: A B C 0 1 0.749065 This 1 2 0.301084 is 2 3 0.463468 a 3 4 0.643961 random 4 1 0.866521 string 5 2 0.120737 ! 呼唤 In [10]: print df.groupby("A")["B"].sum() 将返回 A 1 1.615586 2 0.421821 3 0.463468 4 0.643961 现在,我想对列“ C”执行“相同”操作。因为该列包含字符串,所以sum()不起作用(尽管您可能认为它将字符串连接在一起)。我真正想看到的是每个组的字符串列表或一组字符串,即 A 1 {This, string} 2 …
122 python  pandas 

3
查找具有每一行最大值的列名
我有一个像这样的DataFrame: In [7]: frame.head() Out[7]: Communications and Search Business General Lifestyle 0 0.745763 0.050847 0.118644 0.084746 0 0.333333 0.000000 0.583333 0.083333 0 0.617021 0.042553 0.297872 0.042553 0 0.435897 0.000000 0.410256 0.153846 0 0.358974 0.076923 0.410256 0.153846 在这里,我想问一下如何获取每一行具有最大值的列名,所需的输出是这样的: In [7]: frame.head() Out[7]: Communications and Search Business General Lifestyle Max 0 0.745763 …
122 python  pandas  dataframe  max 

8
如何在一次分配中向熊猫数据框添加多列?
我是熊猫的新手,试图弄清楚如何同时向熊猫添加多列。感谢您的帮助。理想情况下,我希望一步一步完成此操作,而不是重复多次... import pandas as pd df = {'col_1': [0, 1, 2, 3], 'col_2': [4, 5, 6, 7]} df = pd.DataFrame(df) df[[ 'column_new_1', 'column_new_2','column_new_3']] = [np.nan, 'dogs',3] #thought this would work here...
122 python  pandas  dataframe 

3
获取熊猫应用函数中的行的索引
我正在尝试在整个DataFramePandas中应用的函数中访问行的索引。我有这样的事情: df = pandas.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c']) >>> df a b c 0 1 2 3 1 4 5 6 我将定义一个函数来访问给定行的元素 def rowFunc(row): return row['a'] + row['b'] * row['c'] 我可以这样应用它: df['d'] = df.apply(rowFunc, axis=1) >>> df a b c d 0 1 2 3 7 1 4 5 6 34 太棒了!现在,如果我想将索引合并到函数中怎么办?DataFrame在添加之前,该行中任何给定行的索引都d将是Index([u'a', u'b', …
121 python  pandas  dataframe 

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.