小编Bak*_*war的帖子

在Pandas Groupby函数中重命名列名

1).我有以下示例数据集:

>>> df
    ID     Region  count
0  100       Asia      2
1  101     Europe      3
2  102         US      1
3  103     Africa      5
4  100     Russia      5
5  101  Australia      7
6  102         US      8
7  104       Asia     10
8  105     Europe     11
9  110     Africa     23
Run Code Online (Sandbox Code Playgroud)

我想通过ID和Region对这个数据集的观察进行分组,并总结每个组的计数.所以我使用了这样的东西:

>>> print(df.groupby(['ID','Region'],as_index=False).count().sum())

    ID     Region  count
0  100       Asia      2
1  100     Russia      5
2  101  Australia      7
3  101     Europe      3
4  102         US      9
5  103     Africa      5
6  104       Asia     10 …
Run Code Online (Sandbox Code Playgroud)

python group-by rename pandas

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

如何在scikit-learn中预处理后保留数据框的列标题

我有一个pandas数据框,有一些行和列.每列都有一个标题.现在,只要我继续在pandas中进行数据操作操作,我的变量头就会被保留.但是如果我尝试使用Sci-kit-learn lib的一些数据预处理功能,我最终会丢失所有标题,并且帧会转换为数字矩阵.

我理解为什么会发生这种情况,因为scikit-learn给出了一个numpy ndarray作为输出.而numpy ndarray只是矩阵不会有列名.

但事情就是这样.如果我在我的数据集上构建一些模型,即使在初始数据预处理和尝试某些模型之后,我可能还需要做一些更多的数据操作任务来运行其他模型以获得更好的拟合.无法访问列标题使得很难进行数据操作,因为我可能不知道特定变量的索引是什么,但是更容易记住变量名,甚至可以通过执行df.columns来查找.

如何克服这个?

EDIT1:使用示例数据快照进行编辑.

    Pclass  Sex Age SibSp   Parch   Fare    Embarked
0   3   0   22  1   0   7.2500  1
1   1   1   38  1   0   71.2833 2
2   3   1   26  0   0   7.9250  1
3   1   1   35  1   0   53.1000 1
4   3   0   35  0   0   8.0500  1
5   3   0   NaN 0   0   8.4583  3
6   1   0   54  0   0   51.8625 1
7   3   0   2   3   1   21.0750 1
8 …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas scikit-learn

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

Pandas列上的直方图

我正在尝试在pandas中的连续值列上创建直方图.写了下面的代码:

fig=plt.figure(figsize=(17,10))
trip_data.hist(column="Trip_distance")
plt.xlabel("Trip_distance",fontsize=15)
plt.ylabel("Frequency",fontsize=15)
plt.xlim([0.0,100.0])
#plt.legend(loc='center left', bbox_to_anchor=(1.0, 0.5))
Run Code Online (Sandbox Code Playgroud)

但我不确定,为什么所有的值都给出了相同的频率曲线,而这种曲线不应该是这种情况.代码有什么问题吗?

测试数据:

    VendorID    lpep_pickup_datetime    Lpep_dropoff_datetime   Store_and_fwd_flag  RateCodeID  Pickup_longitude    Pickup_latitude Dropoff_longitude   Dropoff_latitude    Passenger_count Trip_distance   Fare_amount Extra   MTA_tax Tip_amount  Tolls_amount    Ehail_fee   improvement_surcharge   Total_amount    Payment_type    Trip_type
0   2   2015-09-01 00:02:34 2015-09-01 00:02:38 N   5   -73.979485  40.684956   -73.979431  40.685020   1   0.00    7.8 0.0 0.0 1.95    0.0 NaN 0.0 9.75    1   2.0
1   2   2015-09-01 00:04:20 2015-09-01 00:04:24 N   5   -74.010796  40.912216   -74.010780  40.912212   1   0.00    45.0    0.0 0.0 0.00    0.0 NaN 0.0 45.00   1 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

在Jupyter笔记本中运行Tensorflow

我正在尝试做一些深入的学习工作.为此,我首先在Python环境中安装了所有用于深度学习的软件包.

这就是我做的.

在Anaconda中,我创建了一个tensorflow如下所示的环境

conda create -n tensorflow
Run Code Online (Sandbox Code Playgroud)

然后在其中安装了数据科学Python包,如Pandas,NumPy等.我还在那里安装了TensorFlow和Keras.以下是该环境中的包列表

(tensorflow) SFOM00618927A:dl i854319$ conda list
# packages in environment at /Users/i854319/anaconda/envs/tensorflow:
#
appdirs                   1.4.3                     <pip>
appnope                   0.1.0                    py36_0  
beautifulsoup4            4.5.3                    py36_0  
bleach                    1.5.0                    py36_0  
cycler                    0.10.0                   py36_0  
decorator                 4.0.11                   py36_0  
entrypoints               0.2.2                    py36_1  
freetype                  2.5.5                         2  
html5lib                  0.999                    py36_0  
icu                       54.1                          0  
ipykernel                 4.5.2                    py36_0  
ipython                   5.3.0                    py36_0  
ipython_genutils          0.2.0                    py36_0  
ipywidgets                6.0.0                    py36_0  
jinja2                    2.9.5                    py36_0  
jsonschema                2.5.1                    py36_0  
jupyter                   1.0.0                    py36_3  
jupyter_client            5.0.0                    py36_0  
jupyter_console           5.1.0                    py36_0  
jupyter_core …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow jupyter-notebook

18
推荐指数
4
解决办法
8万
查看次数

将Json文件读取为Pandas Dataframe错误

我有一个Json文件如下.这是一个dicts列表.

[{"city": "ab", "trips": 4, "date": "2014-01-25", "value": 4.7, "price": 1.1, "request_date": "2014-06-17", "medium": "iPhone", "%price": 15.4, "type": true, "Weekly_pct": 46.2, "avg_dist": 3.67, "avg_price": 5.0}, {"city": "bc", "trips": 0, "date": "2014-01-29", "value": 5.0, "price": 1.0, "request_date": "2014-05-05", "medium": "Android", "%price": 0.0, "type": false, "weekly_pct": 50.0, "avg_dist": 8.26, "avg_price": 5.0}.....]
Run Code Online (Sandbox Code Playgroud)

当我用这个读到这个:

data=pd.read_json('dataset.json')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ValueError:预期的对象或值

我也试过这个:

from ast import literal_eval

with open('dataset.json') as f:
    data = literal_eval(f.read())

df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)

它给出以下错误:

ValueError:格式错误的字符串

编辑:

即使Json.loads也行不通.试过这个:

import json
data=json.loads('dataset.json')
Run Code Online (Sandbox Code Playgroud)

ValueError:无法解码JSON对象

Json文件是13.5MB,但它似乎有大量的数据.

python json pandas

17
推荐指数
4
解决办法
3万
查看次数

等效的IF然后是ELSE

我早些时候在这里看过这个问题,并从中吸取了教训.但是,当我觉得它应该有效时,我不确定为什么会出现错误.

我想DataFrame通过一些规则在现有的Spark中创建一个新列.这是我写的.iris_spark是具有分类变量iris_spark的数据框,具有三个不同的类别.

from pyspark.sql import functions as F

iris_spark_df = iris_spark.withColumn(
    "Class", 
   F.when(iris_spark.iris_class == 'Iris-setosa', 0, F.when(iris_spark.iris_class == 'Iris-versicolor',1)).otherwise(2))
Run Code Online (Sandbox Code Playgroud)

引发以下错误.

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-157-21818c7dc060> in <module>()
----> 1 iris_spark_df=iris_spark.withColumn("Class",F.when(iris_spark.iris_class=='Iris-setosa',0,F.when(iris_spark.iris_class=='Iris-versicolor',1)))

TypeError: when() takes exactly 2 arguments (3 given)


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-157-21818c7dc060> in <module>()
----> 1 iris_spark_df=iris_spark.withColumn("Class",F.when(iris_spark.iris_class=='Iris-setosa',0,F.when(iris_spark.iris_class=='Iris-versicolor',1)))

TypeError: when() takes exactly 2 arguments (3 given)
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

python apache-spark apache-spark-sql pyspark

16
推荐指数
3
解决办法
3万
查看次数

Spark数据框随机拆分

我有一个火花数据框架,我想分为火车,验证和测试,比例为0.60,0.20,0.20.

我使用以下代码:

def data_split(x):
    global data_map_var
    d_map = data_map_var.value
    data_row = x.asDict()
    import random
    rand = random.uniform(0.0,1.0)
    ret_list = ()
    if rand <= 0.6:
        ret_list = (data_row['TRANS'] , d_map[data_row['ITEM']] , data_row['Ratings'] , 'train')
    elif rand <=0.8:
        ret_list = (data_row['TRANS'] , d_map[data_row['ITEM']] , data_row['Ratings'] , 'test')
    else:
        ret_list = (data_row['TRANS'] , d_map[data_row['ITEM']] , data_row['Ratings'] , 'validation')
    return ret_list
?
?
split_sdf = ratings_sdf.map(data_split)
train_sdf = split_sdf.filter(lambda x : x[-1] == 'train').map(lambda x :(x[0],x[1],x[2]))
test_sdf = split_sdf.filter(lambda x : x[-1] == 'test').map(lambda …
Run Code Online (Sandbox Code Playgroud)

python apache-spark pyspark

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

如何安装缺少的依赖项(adjustbox.sty)将Ipython笔记本转换为pdf格式?

我有一个IPython笔记本,我试图转换为PDF格式.但是当我去文件并以PDF格式下载时,它会给我以下错误:

nbconvert failed: PDF creating failed
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我认为一些依赖似乎缺失了.你能建议如何在anaconda中安装它们吗?

编辑:

当我以PDF格式下载时,添加打印到控制台的日志.

[I 16:00:48.396 NotebookApp] Loaded template article.tplx
[I 16:00:49.414 NotebookApp] Writing 51786 bytes to notebook.tex
[I 16:00:49.415 NotebookApp] Building PDF
[I 16:00:49.435 NotebookApp] Running pdflatex 3 times: [u'pdflatex', u'notebook.tex']
[C 16:00:49.853 NotebookApp] pdflatex failed: [u'pdflatex', u'notebook.tex']
    This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) (preloaded format=pdflatex)
     restricted \write18 enabled.
    entering extended mode
    (./notebook.tex
    LaTeX2e <2014/05/01>
    Babel <3.9k> and hyphenation patterns for 21 languages loaded.
    (/usr/local/texlive/2014basic/texmf-dist/tex/latex/base/article.cls
    Document Class: article 2007/10/19 v1.4h Standard LaTeX …
Run Code Online (Sandbox Code Playgroud)

latex ipython-notebook

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

如何在pandas中将变量指定为序数/分类?

我正在尝试使用scikit-learn在数据集上运行一些机器学习算法.我的数据集有一些类似于类别的功能.就像一个特征是A,其值1,2,3指定了某些东西的质量.1:Upper, 2: Second, 3: Third class.所以它就像一个序数变量.

同样地,我已经重新编码的变量城市,有三个值('London', Zurich', 'New York'1,2,3,但与价值没有具体的偏好.所以现在这是一个名义上的分类变量.

如何在pandas中指定算法将其视为分类和序数等?与R一样,分类变量由因子(a)指定,因此不被视为连续值.在pandas/python中有类似的东西吗?

解决这个问题的最佳方法是什么?

谢谢

python pandas scikit-learn

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

如何在 Pyspark 中将行分成多行

我知道在 Python 中可以使用反斜杠甚至括号将行分成多行。

但不知怎的,当我这样做时,在 pyspark 中,我确实得到了下一行红色,这表明可能有问题。

(conf.setAppName('Learnfit_Recommender')
 .set("spark.executor.memory", "10g")
 .set("spark.executor.cores",5)
 .set("spark.executor.instances",50)
 .set("spark.yarn.executor.memoryOverhead",1024)
)
Run Code Online (Sandbox Code Playgroud)

编辑1:我将括号更改为反斜杠。如果你看这张图片,我会发现很少有“。” 为红色,甚至 sc 变量也被标记为红色。

在此输入图像描述

这是 pyspark 中换行的正确方法吗?

python apache-spark pyspark

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