我在 pyspark 数据框中有以下 udf 函数。代码工作正常,除非myFun1('oldColumn')
为空,我希望输出为空字符串而不是空。
myFun1 = udf(lambda x: myModule.myFunction1(x), StringType())
myDF = myDF.withColumn('newColumn', myFun1('oldColumn'))
Run Code Online (Sandbox Code Playgroud)
是否可以就地执行此操作而不是创建另一个 udf 函数?谢谢!
我正在研究一些现有的 spark-sql 代码,它们尝试将两个表连接到如下表:
items_t1_t2 as (
select *,
if(id_t1 is not Null, True, False) as in_t1,
if(id_t2 is not Null, True, False) as in_t2
from item_t2 full join item_t1
on id_t2 = id_t1)
Run Code Online (Sandbox Code Playgroud)
我想知道为什么 if 括号中有三个元素?if 语句在这里是什么意思以及它在这里是如何工作的?非常感谢!
我想为Jupyter Notebook上的以下pandas数据框绘制条形图.
| Month | number
-------------------------
0 | Apr | 6.5
1 | May | 7.3
2 | Jun | 3.9
3 | Jul | 5.1
4 | Aug | 4.1
Run Code Online (Sandbox Code Playgroud)
我做了:
%matplotlib notebook
import matplotlib.pyplot as plt
import matplotlib
matplotlib.style.use('ggplot')
trend_df.plot(kind='bar')
Run Code Online (Sandbox Code Playgroud)
如何确保x轴实际显示月份?
我的PySpark数据框具有以下架构:
schema = spark_df.printSchema()
Run Code Online (Sandbox Code Playgroud)
root
|-- field_1: double (nullable = true)
|-- field_2: double (nullable = true)
|-- field_3 (nullable = true)
|-- field_4: double (nullable = true)
|-- field_5: double (nullable = true)
|-- field_6: double (nullable = true)
Run Code Online (Sandbox Code Playgroud)
我想再向架构中添加一个StructField,因此新架构看起来像:
root
|-- field_1: double (nullable = true)
|-- field_1: double (nullable = true)
|-- field_2: double (nullable = true)
|-- field_3 (nullable = true)
|-- field_4: double (nullable = true)
|-- field_5: double (nullable = true)
|-- field_6: double …
Run Code Online (Sandbox Code Playgroud) 我使用以下代码制作图:
fig, axes = plt.subplots(len(pairs), 3, figsize=(12, 324))
for i, pair in enumerate(pairs):
d = pd.DataFrame(columns=[pairs[0], pairs[1]])
e = df_norm[list(pair)]
ax0 = axes[i,0]
ax1 = axes[i,1]
ax2 = axes[i,2]
d[pair[0]] = np.random.normal(e[pair[0]],0.02)
d[pair[1]] = np.random.normal(e[pair[1]],0.02)
d.plot.scatter(*pair, ax=ax0, c=col0, linewidths=0, s=2, alpha = 0.7)
d.plot.scatter(*pair, ax=ax1, c=col1, linewidths=0, s=2, alpha = 0.7)
d.plot.scatter(*pair, ax=ax2, c=col2, linewidths=0, s=2, alpha = 0.7)
fig.tight_layout()
Run Code Online (Sandbox Code Playgroud)
但是,我的输出图都搞砸了:
我尝试figsize=(12, 324)
通过使324更大或更小来改变,但都没有帮助.有没有办法我可以在每一行之间放置一些空格,这样数字就不会搞砸了.谢谢!
我正在使用Python(3.4)Jupyter Notebook。我在两个单独的单元格中具有以下两个直方图,每个直方图都有自己的图形:
bins = np.linspace(0, 1, 40)
plt.hist(list1, bins, alpha = 0.5, color = 'r')
Run Code Online (Sandbox Code Playgroud)
和
bins = np.linspace(0, 1, 40)
plt.hist(list2, bins, alpha = 0.5, color = 'g')
Run Code Online (Sandbox Code Playgroud)
是否可以将上述两个直方图作为两个子图并排放置在一个图中?
我正在使用Python(3.4)Jupyter Notebook.我尝试使用下面的代码绘制带有标签的直方图.
%matplotlib notebook
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
bins = np.linspace(0, 1.0, 40)
plt.hist(good_tests, bins, alpha = 0.5, color = 'b' , label = 'good')
plt.show()
Run Code Online (Sandbox Code Playgroud)
但标签"好"根本没有表现出来.我错过了什么吗?谢谢!
我有以下代码来检查某些列的值是否包含给定的字符串:
my_df[my_df.name.str.contains('Mike')]
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使其适用于所有字母大小写时,例如:
my_df[my_df.name.str.lower.contains('mike')]
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
AttributeError: 'function' object has no attribute 'contains'
Run Code Online (Sandbox Code Playgroud)
调用 lower() 函数的正确方法应该是什么,以便我可以确保匹配不区分大小写?谢谢!
I am trying to compute percentile of two columns using the pandas qcut method like below:
my_df['float_col_quantile'] = pd.qcut(my_df['float_col'], 100, labels=False)
my_df['int_col_quantile'] = pd.qcut(my_df['int_col'].astype(float), 100, labels=False)
Run Code Online (Sandbox Code Playgroud)
The column float_col_quantile
works fine, but the column int_col_quantile
has the following error. Any idea what I did wrong here? And how can I fix this problem? Thanks!
ValueError Traceback (most recent call last)
<ipython-input-19-b955e0b00953> in <module>()
1 my_df['float_col_quantile'] = pd.qcut(my_df['float_col'], 100, labels=False)
----> 2 my_df['int_col_quantile'] = pd.qcut(my_df['int_col'].astype(float), 100, labels=False)
/usr/local/lib/python3.4/dist-packages/pandas/tools/tile.py in qcut(x, q, …
Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码来规范化数字熊猫数据框。
df_norm = (input_df - input_df.mean()) / (input_df.max() - input_df.min())
Run Code Online (Sandbox Code Playgroud)
现在我有了一个新的数据框,前两列是字符串。我想忽略前两列并对数据框的其余部分执行规范化。有没有办法通过小的修改来重用上面的代码?谢谢!
python ×6
pandas ×4
python-3.x ×4
dataframe ×3
matplotlib ×3
histogram ×2
apache-spark ×1
join ×1
lambda ×1
lowercase ×1
pyspark ×1
quantile ×1
sql ×1