小编mun*_*uni的帖子

使用monotonically_increasing_id()将行号分配给pyspark数据帧

我使用monotonically_increasing_id()使用以下语法将行号分配给pyspark数据帧:

df1 = df1.withColumn("idx", monotonically_increasing_id())
Run Code Online (Sandbox Code Playgroud)

现在df1有26,572,528条记录.所以我期待idx值从0-26,572,527.

但是当我选择max(idx)时,它的值非常大:335,008,054,165.

这个功能发生了什么?使用此函数与具有相似记录数的其他数据集合并是否可靠?

我有大约300个数据帧,我想将它们组合成一个数据帧.因此,一个数据帧包含ID,而其他数据帧包含与行对应的不同记录

python indexing merge pyspark

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

在具有混合数据类型的数据帧中将所有出现的True/False转换为1/0

我有一个大约有100列的数据框,有一些布尔列和一些字符.我想替换所有具有值True/False的布尔值以及-1和1/0的布尔值.我想将它应用于整个数据帧而不是单列.

我在这里看到了一些解决方案,比如将列转换为整数.但是我想避免通过100列的练习.

这是我尝试失败的事情:

test.applymap(lambda x: 1 if x=='True' else x)
test.applymap(lambda x: 0 if x=='False' else x)
Run Code Online (Sandbox Code Playgroud)

但是数据帧测试仍然是True/False

python data-manipulation

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

在多列熊猫上应用 lambda 行

我正在创建一个示例数据框:

tp = pd.DataFrame({'source':['a','s','f'], 
                   'target':['b','n','m'], 
                   'count':[0,8,4]})
Run Code Online (Sandbox Code Playgroud)

并根据“目标”列的条件创建列“col”>>与源相同,如果匹配条件,则为默认值,如下所示:

tp['col'] = tp.apply(lambda row:row['source'] if row['target'] in ['b','n'] else 'x')
Run Code Online (Sandbox Code Playgroud)

但它给我这个错误: KeyError: ('target', 'occurred at index count')

如何在不定义函数的情况下使其工作?

python lambda if-statement dataframe pandas

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

如何调整 xgboost 为变量分配更多权重?

我有大约 10k 客户 3 个月的历史购买数据,我想使用该数据来预测他们在未来 3 个月内的购买情况。我使用客户 ID 作为输入变量,因为我希望 xgboost 了解不同类别之间的个人支出。有没有办法进行调整,以便重点是根据每个人的购买情况了解更多信息?或者解决这个问题的更好方法?

r tweak xgboost

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

从 pyspark 数据帧创建 Numpy 矩阵

我有一个 pyspark 数据框child,其中包含以下列:

lat1 lon1
80    70
65    75
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 IndexedRowMatrix 将其转换为 numpy 矩阵,如下所示:

from pyspark.mllib.linalg.distributed import IndexedRow, IndexedRowMatrix

mat = IndexedRowMatrix(child.select('lat','lon').rdd.map(lambda row: IndexedRow(row[0], Vectors.dense(row[1:]))))
Run Code Online (Sandbox Code Playgroud)

但它给我带来了错误。我想避免转换为 pandas 数据帧来获取矩阵。

错误:

Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.runJob.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 33.0 failed 4 times, most recent failure: Lost task 0.3 in stage 33.0 (TID 733, ebdp-avdc-d281p.sys.comcast.net, executor 16): org.apache.spark.api.python.PythonException: Traceback (most recent call last):
  File "/data/02/yarn/nm/usercache/mbansa001c/appcache/application_1506130884691_56333/container_e48_1506130884691_56333_01_000017/pyspark.zip/pyspark/worker.py", line 174, in main …
Run Code Online (Sandbox Code Playgroud)

numpy apache-spark-sql pyspark

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

如何使用底图Python在背景顶部绘制散点图

我正在尝试使用底图在背景上绘制散点图。但这覆盖了背景。如何保留背景?

我正在使用此代码

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

m = Basemap(projection='merc',llcrnrlat=-80,urcrnrlat=80,llcrnrlon=-180,urcrnrlon=180,lat_ts=20,resolution='c')

m.bluemarble()

x, y = m(list(longitude), list(latitude))
plt.scatter(x,y,1,marker='o',color='Red')
plt.show()
Run Code Online (Sandbox Code Playgroud)

但是,一旦我运行散点图,它就会覆盖背景图像。如何将散点图覆盖在图像上。

plot overlay python-3.x matplotlib-basemap

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