我正在尝试按以下方式过滤我的 pyspark 数据框:我有一列long_text
包含数字,一列包含数字。如果长文本包含number
我想保留该列。我正在尝试使用 SQLLIKE
语句,但似乎无法将其应用于另一列(此处number
)我的代码如下:
from pyspark.sql.functions import regexp_extract, col, concat, lit
from pyspark.sql.types import *
PN_in_NC = (df
.filter(df.long_text.like(concat(lit("%"), df.number, lit("%"))))))
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Method like([class org.apache.spark.sql.Column]) does not exist
。
我尝试了多种方法来修复它(例如'%number%'
在过滤器之前将字符串创建为列,而不是使用lit
, using '%' + number + '%'
)但没有任何效果。如果LIKE
不能应用于另一列,是否有其他方法可以做到这一点?
我想将 pyspark 数据框中的数组列中的所有值设为负数,而不会爆炸(!)。我尝试了这个 udf 但它不起作用:
negative = func.udf(lambda x: x * -1, T.ArrayType(T.FloatType()))
cast_contracts = cast_contracts \
.withColumn('forecast_values', negative('forecast_values'))
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
数据框示例:
df = sc..parallelize(
[Row(name='Joe', forecast_values=[1.0,2.0,3.0]),
Row(name='Mary', forecast_values=[4.0,7.1])]).toDF()
>>> df.show()
+----+---------------+
|name|forecast_values|
+----+---------------+
| Joe|[1.0, 2.0, 3.0]|
|Mary| [4.0, 7.1]|
+----+---------------+
Run Code Online (Sandbox Code Playgroud)
谢谢
我有一个 pandas 数据框“数据”,我想将其导出为 csv。它工作正常,但有些线路完全混乱。我使用: data.to_csv('data.csv')
我尝试更改编码并删除索引,但它不起作用。第一张图片是正确的行,第二张图片是混乱的行。当查看混乱的行时,我发现问题可能是文本数据使用分隔符 \r 来分隔行并且导出不正确。我怎样才能解决这个问题?
谢谢!
我正在尝试为我的GaussianNB模型获得最重要的功能。这里的代码如何获得scikit-learn分类器的大多数信息功能? 还是在这里如何获得scikit-learn分类器针对不同类别的大多数信息功能?仅在我使用MultinomialNB时有效。否则,如何为我的两个类(故障= 1或故障= 0)中的每一个计算或检索最重要的特征?我的代码是:(不适用于文本数据)
df = df.toPandas()
X = X_df.values
Y = df['FAULT'].values.reshape(-1,1)
gnb = GaussianNB()
y_pred = gnb.fit(X, Y).predict(X)
print(confusion_matrix(Y, y_pred))
print(accuracy_score(Y, y_pred))
Run Code Online (Sandbox Code Playgroud)
其中X_df是一个数据框,其中包含我的每个功能的二进制列。
python classification feature-selection scikit-learn naivebayes
我正在使用sklearn的k均值聚类对数据进行聚类。现在,我想知道群集之间的距离,但是找不到。我可以计算每个质心之间的距离,但想知道是否有一个函数可以获取它,以及是否有一种方法可以获取每个聚类之间的最小/最大/平均链接距离。我的代码很简单:
km = KMeans(n_clusters = 5, random_state = 1)
km.fit(X_tfidf )
clusterkm = km.cluster_centers_
clusters = km.labels_.tolist()
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在尝试为 pyspark 数据框中的每一行删除一列中的前两个字符。以下字符的长度不同,因此我无法使用substring的解决方案。
示例数据框:
columns = ['text']
vals = [(h0123),(b012345), (xx567)]
Run Code Online (Sandbox Code Playgroud)
编辑 实际上问题变得更加复杂,因为有时我有一个字母和两个零作为第一个字符,然后需要删除两个 0。
例子:
columns = ['text']
vals = [(h0123),(b012345), (x00567), (L0034)]
Run Code Online (Sandbox Code Playgroud)
预期结果:
(123),(12345), (567), (34)
Run Code Online (Sandbox Code Playgroud) python ×4
apache-spark ×3
pyspark ×3
scikit-learn ×2
arrays ×1
csv ×1
distance ×1
k-means ×1
naivebayes ×1
pandas ×1
slice ×1
sql-like ×1
substring ×1