我在pyspark中有数据框.它的一些数字列包含'nan',因此当我读取数据并检查数据帧的模式时,这些列将具有"字符串"类型.我怎样才能改变他们为int type.I取代了"南"值是0,并再次检查的模式,但后来又它显示是跟着下面的代码对那些columns.I字符串类型:
data_df = sqlContext.read.format("csv").load('data.csv',header=True, inferSchema="true")
data_df.printSchema()
data_df = data_df.fillna(0)
data_df.printSchema()
Run Code Online (Sandbox Code Playgroud)
这里列'Plays'和'drafts'包含整数值,但由于这些列中存在nan,它们被视为字符串类型.
我想用matplotlib绘制这个图.我写了代码,但它没有改变x轴值.
import matplotlib.pyplot as plt
x = [0.00001,0.001,0.01,0.1,0.5,1,5]
y = [0.945,0.885,0.893,0.9,0.996,1.25,1.19]
plt.xlim(0.00001,5)
plt.ylim(0.8,1.4)
plt.plot(x, y, marker='o', linestyle='--', color='r',
label='Square')
plt.xlabel('x')
plt.ylabel('y')
plt.title('compare')
plt.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)
如何使用matplotlib绘制给定图形的蓝线?
我创建了一个AWS elasticsearch实例.我想使用python脚本访问它.我指定了我的AWS配置(访问密钥,密钥,区域).我使用下面的代码来访问AWS ES实例:
from elasticsearch import Elasticsearch, RequestsHttpConnection
from requests_aws4auth import AWS4Auth
AWS_ACCESS_KEY = '**************'
AWS_SECRET_KEY = '*****************'
region = 'us-east-1'
service = 'es'
awsauth = AWS4Auth(AWS_ACCESS_KEY, AWS_SECRET_KEY, region, service)
host = 'https://kbckjsdkcdn.us-east-1.es.amazonaws.com' # For example, my-test-domain.us-east-1.es.amazonaws.com
es = Elasticsearch(
hosts = [{'host': host, 'port': 443}],
http_auth = awsauth,
use_ssl = True,
verify_certs = True,
connection_class = RequestsHttpConnection
)
print es.info()
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,我收到以下错误:
elasticsearch.exceptions.ConnectionError: ConnectionError(HTTPSConnectionPool(host='https', port=443): Max retries exceeded with url: //search-opendata-2xd6pwilq5sv4ahomcuaiyxmqe.us-east-1.es.amazonaws.com:443/ (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x10ee72310>: Failed to establish …Run Code Online (Sandbox Code Playgroud) 我有带有“年”、“月”和“交易ID”列的熊猫数据框。我想获得每年每个月的交易次数。例如,我的数据如下:
year: {2015,2015,2015,2016,2016,2017}
month: {1, 1, 2, 2, 2, 1}
tid: {123, 343, 453, 675, 786, 332}
Run Code Online (Sandbox Code Playgroud)
我想得到这样的输出,每年我都会得到每月的交易数量。对于 2015 年的前任,我将得到输出:
month: [1,2]
count: [2,1]
Run Code Online (Sandbox Code Playgroud)
我使用了 groupby('year')。但在那之后我如何获得每月的交易计数。
我正在尝试将 Python 文件提交给 REST API,但它总是给出错误。我正在使用本地模式,我正在运行的命令如下:
$curl -X POST --data '{"file":"/Users/neha/Desktop/spark_project/examples/spark_livy_ex3.py"}' -H "Content-Type: application/json" localhost:8998/batches
"requirement failed: Local path /Users/neha/Desktop/spark_project/examples/spark_livy_ex3.py cannot be added to user sessions."
Run Code Online (Sandbox Code Playgroud)
从这个链接https://groups.google.com/a/cloudera.org/forum/#!topic/livy-user/mm-XEhANDHU我发现我必须通过修改 livy.conf 来修改 livy.conf将 /Users/neha/Desktop/spark_project/examples/ 目录添加到 livy.file.local-dir-whitelist。我再次使用上面的 curl 命令运行代码,但现在我也遇到了同样的错误。
请注意,'spark_livy_ex3.py' 是我要运行的 python 文件。
我该如何解决这个问题?
我试图在Jupyter python笔记本中使用matplotlib绘制图形.但是当我分配y轴标签时,它没有显示在图表中,而且它也绘制了两个图形.我使用的代码是:
trans_count_month = df.groupby('month_').TR_AMOUNT.count()
plt.xlabel('Months') #X-axis label
plt.ylabel('Total Transactions Count') #Y-axis label
plt.title("Month wise Total Transaction Count") #Chart title.
width = 9
height = 5
plt.figure(figsize=(width, height))
trans_count_month.plot(kind='bar')
plt.figure(figsize=(width, height))
Run Code Online (Sandbox Code Playgroud)
如何只显示一个带有y轴标签的图形,如果还有其他方法可以绘制此图形,请分享解决方案.
我有一个变量,其值类似于 [23.13, 56.1, 12.6, 1.23, 5.56]。我想找到这个变量的熵。我在这里得到了一个代码如何计算 N 个变量的香农熵和互信息,但对于连续变量应该首选什么 bin 大小?
我有一个pandas数据帧'结果'.此数据框中的一个属性是"交易",如果是非现金交易,则包含值0,如果交易是现金交易,则包含一些实数.此属性如下所示:
result['transaction'] = [0,0,0,23.2,432,12,0,0,56.4]
Run Code Online (Sandbox Code Playgroud)
我想更改此属性的值,以便所有非零值将替换为1.因此,我的结果属性应如下所示:
result['transaction'] = [0,0,0,1,1,1,0,0,1]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我有一个数据帧'df',其中一个属性是日期时间.此属性中的值如下所示:
>>df['TR_DATE']
0 2015-03-18 19:59:58
1 2015-03-19 13:23:37
2 2015-03-19 13:27:04
3 2015-03-19 14:23:53
4 2015-03-19 15:01:50
5 2015-03-19 17:45:42
6 2015-03-19 17:49:58
Run Code Online (Sandbox Code Playgroud)
我想分别将此属性中的值拆分为日期和时间.所以我将有两个新列df ['DATE']和df ['TIME']包含值:
>>df['DATE']
2015-03-18
2015-03-19
2015-03-19
2015-03-19
2015-03-19
2015-03-19
2015-03-19
>>df['Time']
19:59:58
13:23:37
13:27:04
14:23:53
15:01:50
17:45:42
17:49:58
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?