小编Tha*_*nos的帖子

python pandas直方图包括NaN值

我想绘制一些数据的直方图.抱歉我无法附上样本直方图,因为我没有足够的声誉.希望你能理解我对我面临的问题的描述.我正在使用python pandas,我意识到任何NaN值都被pandas视为0.有没有什么方法可以用来在直方图中包含Nan值的计数?我的意思是x轴也应该具有NaN值.请帮忙......非常感谢.

python pandas

9
推荐指数
1
解决办法
3562
查看次数

在“分组依据”熊猫数据框中重复值

我有以下熊猫DataFrame:

     email   cat  class_price
0   email1@gmail.com  cat1            1
1   email2@gmail.com  cat2            2
2   email3@gmail.com  cat2            4
3   email1@gmail.com  cat2            4
4   email2@gmail.com  cat2            1
5   email3@gmail.com  cat1            3
6   email1@gmail.com  cat1            2
7   email2@gmail.com  cat2            1
8   email3@gmail.com  cat2            4
9   email1@gmail.com  cat2            2
10  email2@gmail.com  cat3            1
11  email3@gmail.com  cat1            1
Run Code Online (Sandbox Code Playgroud)

我想通过电子邮件和class_price进行分组,对于每一行,我都希望采用class_price的最大值。

我正在使用:

test_df2 = test_df.groupby(['email','cat'])['class_price'].max()
Run Code Online (Sandbox Code Playgroud)

输出为:

email             cat 
email1@gmail.com  cat1    2
                  cat2    4
email2@gmail.com  cat2    2
                  cat3    1
email3@gmail.com  cat1    3
                  cat2    4
Run Code Online (Sandbox Code Playgroud)

但是我怎么能得到一个结果,即使是分组的列也保留重复的值,以便可以将所有值写成一个正确的表:

email             cat      maxvalue 
email1@gmail.com …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

7
推荐指数
2
解决办法
4124
查看次数

在pandas数据帧中查找最近的日期

我有一个csv文件,我读入了pandas数据帧.日期和时间列在"DateTime"列中.我想找到创建时间序列图的索引的最新和最近日期.大熊猫是否有能够返回最近和最近日期的功能?

编辑:
我已经尝试过使用min和max.他们给出了错误答案.

>>> f['Start Date']  
Trip ID  
4576       8/29/2013 14:13  
4607       8/29/2013 14:42  
4130       8/29/2013 10:16  
4251       8/29/2013 11:29  
4299       8/29/2013 12:02  
4927       8/29/2013 18:54  
4500       8/29/2013 13:25  
4563       8/29/2013 14:02  
4760       8/29/2013 17:01  
4258       8/29/2013 11:33  
4549       8/29/2013 13:52  
4498       8/29/2013 13:23  
4965       8/29/2013 19:32  
4557       8/29/2013 13:57  
4386       8/29/2013 12:31  
...  
198757     2/28/2014 20:40  
198760     2/28/2014 20:59  
198761     2/28/2014 20:59  
198763     2/28/2014 21:32  
198764     2/28/2014 21:32  
198765     2/28/2014 21:34  
198766     2/28/2014 21:41  
198767     2/28/2014 21:50  
198768     2/28/2014 …
Run Code Online (Sandbox Code Playgroud)

python pandas

6
推荐指数
1
解决办法
2万
查看次数

如何用Jython导入Pandas

我是python的新手,我已经安装了Jython2.7.0

Java的

import org.python.util.PythonInterpreter;
import org.python.core.*; 

public class Main {
    public static void main(String[] args) {
         PythonInterpreter interp = new PythonInterpreter(); 
         interp.execfile("D:/Users/JY/Desktop/test/for_java_test.py");  
         interp.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

蟒蛇

import pandas as pd
import ctypes

def main():
    data = pd.read_csv('for_test.csv')
    data_mean = data.a*2
    data_mean.to_csv('catch_test.csv',index=False)
    ctypes.windll.user32.MessageBoxW(0, "Done. Output: a * 2", "Output csv", 0)

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

然后我收到了这个错误.

Exception in thread "main" Traceback (most recent call last):
File "D:\Users\JYJU\Desktop\test_java\for_java_test.py", line 1, in <module>
    import pandas as pd
ImportError: No module named pandas …
Run Code Online (Sandbox Code Playgroud)

python pandas jython-2.7

6
推荐指数
2
解决办法
5920
查看次数

Pandas 将对象转换为 timedelta

我有以下数据

   Duration
0  00:00:00  
1  00:00:00  
2  00:00:57  
3  00:03:16  
4  00:00:00  
Run Code Online (Sandbox Code Playgroud)

Duration作为对象存储。我想将其转换为具有秒数的整数。例如 00:03:16 被转换为 196。我尝试了各种类似的东西,astype(timedelta64[s])但没有成功。我尝试提取分钟和秒并尝试转换为整数,这也没有产生结果。我无法将提取的字符串转换为整数。

object timedelta pandas

6
推荐指数
1
解决办法
2467
查看次数

为什么安装成功后无法导入pandas?

我用命令'pip3.4安装pandas'安装了pandas.

Successfully installed pandas python-dateutil pytz numpy six
Cleaning up...

root@hwy:~# python3.4
Python 3.4.2 (default, Oct  8 2014, 10:45:20) 
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'pandas'
Run Code Online (Sandbox Code Playgroud)

在成功安装pandas后,为什么不能在python3.4中导入pandas?

root@hwy:/home/debian8# pip3.4 show pandas
---
Name: pandas
Version: 0.17.1
Location: /usr/local/python3.4/lib/python3.4/site-packages
Requires: python-dateutil, pytz, numpy
root@hwy:/home/debian8# echo "import sys; print sys.path"
import sys; print sys.path
root@hwy:/home/debian8# python3.4
Python …
Run Code Online (Sandbox Code Playgroud)

python-3.x pandas

5
推荐指数
1
解决办法
5397
查看次数

str.contains在pandas数据帧中创建新列

我正在探索巨大的数据集,并希望创建一个名称相似的列.例如,包含"Charles"的任何名称都将显示为"ch",因为我希望稍后使用这些名称来执行某些组.我使用以下代码创建了一个函数:

def cont(Name):
    for a in Name:
        if a.str.contains('Charles'):
            return('Ch')
Run Code Online (Sandbox Code Playgroud)

然后使用这个应用:

titanic['namest']=titanic['Name'].apply(cont,axis=1)
Run Code Online (Sandbox Code Playgroud)

错误: 'str' object has no attribute 'str'

notebook_link

python dataframe python-3.x pandas

4
推荐指数
1
解决办法
2149
查看次数

已过 datetime64 四分之一

我有一个pd.DataFrame看起来像这样的:

In [119]: df1
Out[119]: 
        DATES
0  2014-01-01
1  2014-01-24
2  2014-03-11
3  2014-04-09
4  2014-04-21
5  2014-05-02
6  2014-05-13
7  2014-06-11
8  2014-06-21
9  2014-07-22
10 2014-08-04

In [120]: df1.dtypes
Out[120]: 
DATES    datetime64[ns]
dtype: object
Run Code Online (Sandbox Code Playgroud)

我想计算每个条目所属的季度。到目前为止我尝试过的是:

df1['QUARTER'] = df1['DATES'].map(lambda x: '2014Q1' if (x.year == 2014 & (x.month == 1 | x.month == 2 | x.month == 3)) else np.nan)
Run Code Online (Sandbox Code Playgroud)

然后我得到:

In [124]: df1
Out[124]: 
        DATES  QUARTER
0  2014-01-01      NaN
1  2014-01-24      NaN
2  2014-03-11      NaN
3  2014-04-09 …
Run Code Online (Sandbox Code Playgroud)

python pandas

4
推荐指数
1
解决办法
2077
查看次数

Pandas相当于Python的readlines函数

使用python的readlines()函数,我可以检索文件中每行的列表:

with open('dat.csv', 'r') as dat:
    lines = dat.readlines()
Run Code Online (Sandbox Code Playgroud)

我正在处理涉及非常大的文件的问题,并且此方法产生内存错误.有没有相当于Python readlines()功能的熊猫?该pd.read_csv()选项chunksize似乎在我的线上附加数字,这远非理想.

最小的例子:

In [1]: lines = []

In [2]: for df in pd.read_csv('s.csv', chunksize = 100):
   ...:     lines.append(df)
In [3]: lines
Out[3]: 
[   hello here is a line
 0  here is another line
 1  here is my last line]

In [4]: with open('s.csv', 'r') as dat:
   ...:     lines = dat.readlines()
   ...:     

In [5]: lines
Out[5]: ['hello here is a line\n', 'here is another …
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
1万
查看次数

Twitter流API - Erlang客户端

我是Erlang世界的新手,我正在尝试为Twitter Stream API编写客户端.我正在使用httpc:request来发出POST请求而且我经常收到401错误,我显然是在做我发送请求的方式有问题......我看起来像这样:

fetch_data() ->
    Method = post,
    URL = "https://stream.twitter.com/1.1/statuses/filter.json",
    Headers = "Authorization: OAuth oauth_consumer_key=\"XXX\", oauth_nonce=\"XXX\", oauth_signature=\"XXX%3D\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"XXX\", oauth_token=\"XXX-XXXXX\", oauth_version=\"1.0\"",
    ContentType = "application/json",
    Body = "{\"track\":\"keyword\"}",
    HTTPOptions = [],
    Options = [],
    R = httpc:request(Method, {URL, Headers, ContentType, Body}, HTTPOptions, Options),
    R.
Run Code Online (Sandbox Code Playgroud)

在这一点上,我确信签名没有问题,因为在尝试使用curl访问API时,相同的签名工作正常.我猜我的提出请求有一些问题.

我在请求中得到的响应如上所示:

{ok,{{"HTTP/1.1",401,"Unauthorized"},
 [{"cache-control","must-revalidate,no-cache,no-store"},
  {"connection","close"},
  {"www-authenticate","Basic realm=\"Firehose\""},
  {"content-length","1243"},
  {"content-type","text/html"}],
 "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n<title>Error 401 Unauthorized</title>\n</head>\n<body>\n<h2>HTTP ERROR: 401</h2>\n<p>Problem accessing '/1.1/statuses/filter.json'. Reason:\n<pre>    Unauthorized</pre>\n                                                \n                                                \n                                                \n                                                \n                                                \n                                                \n                                                \n                                                \n                                                \n                                                \n                                                \n                                                \n                                                \n                                                \n                                                \n …
Run Code Online (Sandbox Code Playgroud)

twitter erlang client stream

1
推荐指数
1
解决办法
1602
查看次数

根据不同的列值分配唯一值

我知道问题名称有点含糊不清.

我的目标是在我的数据框中根据2列+唯一值分配全局键列.

例如

CountryCode | Accident
   AFG          Car
   AFG          Bike
   AFG          Car
   AFG          Plane
   USA          Car
   USA          Bike
   UK           Car
Run Code Online (Sandbox Code Playgroud)

设Car = 01,Bike = 02,Plane = 03

我的愿望全局密钥格式是[事故] [CountryCode] [UniqueValue]

唯一值是类似[Accident] [CountryCode]的计数

因此,如果Accident = Car和CountryCode = AFG并且它是第一次出现,则全局密钥将为01AFG01

所需的数据框如下所示:

CountryCode | Accident | GlobalKey
   AFG          Car        01AFG01
   AFG          Bike       02AFG01
   AFG          Car        01AFG02
   AFG          Plane      01AFG03
   USA          Car        01USA01
   USA          Bike       01USA02
   UK           Car        01UK01
Run Code Online (Sandbox Code Playgroud)

我尝试运行for循环将Accident Number和CountryCode一起添加

例如:

globalKey = []

for x in range(0,6):
    string = df.iloc[x, 1]
    string2 = …
Run Code Online (Sandbox Code Playgroud)

python group-by dataframe pandas

1
推荐指数
1
解决办法
883
查看次数