我有一个Dataframe存储商店名称和每日销售数量.我试图使用下面的Python脚本将其插入Salesforce.但是我收到了一个错误
TypeError:'int64'类型的对象不是JSON可序列化的
下面给出的是Dataframe的视图
Storename,Count
Store A,10
Store B, 12
Store C, 5
Run Code Online (Sandbox Code Playgroud)
我使用以下代码将其插入Salesforce
update_list = []
for i in range((len(store))):
update_data = {
'name' : store['entity_name'].iloc[i],
'count__c': store['count'].iloc[i] }
update_list.append(update_data)
sf_data_cursor = sf_datapull.salesforce_login()
sf_data_cursor.bulk.Account.update(update_list)
Run Code Online (Sandbox Code Playgroud)
获取上面最后一行执行的错误.谁能协助解决这个问题.谢谢..
搞乱Python.h时我遇到了这个错误:
AttributeError: 'module' object has no attribute 'argv'
Run Code Online (Sandbox Code Playgroud)
C++代码:
#include "stdafx.h"
#include "C:/Python27/include/Python.h"
#include <iostream>
using namespace std;
int main()
{
Py_Initialize();
PyRun_SimpleString("import sys\nprint sys.argv[0]");
}
Run Code Online (Sandbox Code Playgroud)
在Python中是:
import sys
print sys.argv[0]
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我需要在日期上合并2个pandas数据帧,但它们目前有不同的日期类型.1是时间戳(从excel导入),另一个是datetime.date.
有什么建议?
我已经尝试pd.to_datetime().date但这仅适用于单个项目(例如df.ix[0,0]),它不会让我应用于整个系列(例如df['mydates'])或数据帧.
我想生成一个pandas DataFrame的散点图,其中包含分类行和列标签matplotlib.示例DataFrame如下所示:
import pandas as pd
df = pd.DataFrame({"a": [1,2], "b": [3,4]}, index=["c","d"])
# a b
#c 1 2
#d 3 4
Run Code Online (Sandbox Code Playgroud)
标记大小是相应DataFrame值的函数.到目前为止,我提出了一个尴尬的解决方案,基本上枚举行和列,绘制数据,然后重建标签:
flat = df.reset_index(drop=True).T.reset_index(drop=True).T.stack().reset_index()
# level_0 level_1 0
#0 0 0 1
#1 0 1 2
#2 1 0 3
#3 1 1 4
flat.plot(kind='scatter', x='level_0', y='level_1', s=100*flat[0])
plt.xticks(range(df.shape[1]), df.columns)
plt.yticks(range(df.shape[0]), df.index)
plt.show()
Run Code Online (Sandbox Code Playgroud)
现在,问题:是否有更直观,更集成的方法来生成此散点图,理想情况下不分割数据和元数据?
函数f(x,y)接受两个 Pandas 系列并返回一个浮点数。我想应用f到 DataFrame 中的每一对列D并构造另一个E返回值的DataFrame ,所以这f(D[i],D[j])是i第 th 行和j第 th 列的值。直接的解决方案是在所有列对上运行嵌套循环:
E = pd.DataFrame([[f(D[i], D[j]) for i in D] for j in D],
columns=D.columns, index=D.columns)
Run Code Online (Sandbox Code Playgroud)
但是有没有更优雅的解决方案,可能不涉及显式循环?
注意这个问题不是愚弄的这个,尽管有相似的名称。
编辑一个玩具示例:
D = pd.DataFrame([[1,2,3], [4,5,6], [7,8,9]], columns=("a","b","c"))
def f(x,y): return x.dot(y)
E
# a b c
#a 66 78 90
#b 78 93 108
#c 90 108 126
Run Code Online (Sandbox Code Playgroud) 我注意到Python [3.6.5] BeautifulSoup [4.6.0]和"lxml"[4.2.1]解析器如何处理长bytes对象与长字符串之间存在奇怪的不一致.(显然,"long"是> 16,384 = 2**14个字符或字节.)
例如,我从麻省理工学院网站下载奥赛罗的文本,并以原始(字节)形式和解码为字符串后将其提供给BS.两个对象具有相同的长度,因为文档中没有多字节字符.
from bs4 import BeautifulSoup
import urllib
url = "http://shakespeare.mit.edu/othello/full.html"
html_raw = urllib.request.urlopen(url).read()
html_str = urllib.request.urlopen(url).read().decode("iso-8859-1")
type(html_raw), len(html_raw)
#(<class 'bytes'>, 304769)
type(html_str), len(html_str)
#(<class 'str'>, 304769)
Run Code Online (Sandbox Code Playgroud)
产生的汤对于较短的字符串/字节是相同的,但对于较长的字符串/字节则不同.也就是说,由字符串生成的汤突然开始将单词作为单独的字符处理,而从字节生成的汤正确处理整个文件:
BeautifulSoup(html_raw[:16410], "lxml")
#... <i>Enter OTHELLO, IAGO, and Attendants with torches</i>
#</blockquote>
#<a></a></body></html>
BeautifulSoup(html_str[:16410], "lxml")
#... <i>Enter OTHELLO, IAGO, and Attendants with torch e s / i >
# / b l o c k q u o t e >
#
# A </i></blockquote></body></html> …Run Code Online (Sandbox Code Playgroud) 我正在尝试向我的交易账户发出网络请求.Python无法解码Web请求.使用代码200的Web请求成功.
这是下面的代码
import requests
headers = {
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'en-US,en;q=0.9',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
'x-kite-version': '1.2.1',
'accept': 'application/json, text/plain, */*',
'referer': 'https://kite.zerodha.com/orders',
'authority': 'kite.zerodha.com',
'cookie': '__cfduid=db8fb54c76c53442fb672dee32ed58aeb1521962031; _ga=GA1.2.1516103745.1522000590; _gid=GA1.2.581693731.1522462921; kfsession=CfawFIZq2T6SghlCd8FZegqFjNIKCYuO; public_token=7FyfBbbxhiRRUso3425TViK2VmVszMCK; user_id=XE4670',
'x-csrftoken': '7FyfBbbxhiRRUso3425TViK2VmVszMCK',
}
response = requests.get('https://kite.zerodha.com/api/orders', headers=headers)
x=str(response.content.decode("utf-8") )
Run Code Online (Sandbox Code Playgroud)
b"1X\x14\x00\xfe\xa7\x9b\xd3\xca\xbd9-\x12\x83\xbfULS1\x1d8\x9d\x0e\xd4\xcf\xbd\xb8\xd1\xbd4\xc0\x00\x13 〜\ X94}\XE4\X81\XA4\x90P\x1cfs\XCD\X1E\xaeG\x9b},米\ XBD \吨\ x84L1\XDE\xa8e\x8a\xf1h\x0e\X0C)\ X1A\X12\XFB\x06z\xec\x18\xe4r\xa1\x1c\x11\xe8\xbcO\xec\xe2 |\xa6\x90\xa9\xdf\xf2\xe1\xfa\xf3\x1e\x04\x0e\xa2\x8d\x0e\XC4\TW\XEB\xd9\XBA \n\xf1H'l\XEB>\X08\x85L\r\x0cY\XF8\x81D;!\ X92Ó\ XFD\XBD\xe3u> 3\X10\XE1\x8c;\XB8\x9e\xceA\XAE\x0exX\xc9\x19s\XEB\xe5r〜1\X98\xed0\XB8\XDC\XB4\X17:\ X14\x96xAn\xb9\XF0\XCE\XF2L \\ xa6G ?50\x9b\XF3\XC1 \\ X1F\X0F\x8fs\X1B /\X17\X1A\X0C [ySAX\X1D'\ XE7\XBB\NX\xacR〜\ XBB\x9f\xe0\x8c?的\ XC0\X8F\xe0\X97\XFF\XDE'\ xc7#\ X8F\X97\XAF \的Xaa%\ XF2\xf9\xfaC |\XCF\t\XF3\XEB …
我有一个 3D numpy 数组data和另一个pos索引数组(一个索引本身就是一个 numpy 数组,这使得后一个数组成为一个 2D 数组):
import numpy as np
data = np.arange(8).reshape(2, 2, -1)
#array([[[0, 1],
# [2, 3]],
#
# [[4, 5],
# [6, 7]]])
pos = np.array([[1, 1, 0], [0, 1, 0], [1, 0, 0]])
#array([[1, 1, 0],
# [0, 1, 0],
# [1, 0, 0]])
Run Code Online (Sandbox Code Playgroud)
我想从data使用索引中选择和/或变异元素pos。我可以使用for循环或列表理解进行选择:
[data[tuple(i)] for i in pos]
#[6, 2, 4]
data[[i for i in pos.T]]
#array([6, 2, 4])
Run Code Online (Sandbox Code Playgroud)
但这似乎不是一种麻木的方式。是否有针对此问题的矢量化 numpy …
我有一个 CSV,可以生成以下格式的数据框
--------------------------------------------------------------
|Date | Fund | TradeGroup | LongShort | Alpha | Details|
--------------------------------------------------------------
|2018-05-22 |A | TGG-A | Long | 3.99 | Misc |
|2018-05-22 |A | TGG-B | Long | 4.99 | Misc |
|2018-05-22 |B | TGG-A | Long | 5.99 | Misc |
|2018-05-22 |B | TGG-B | Short | 6.99 | Misc |
|2018-05-22 |C | TGG-A | Long | 1.99 | Misc |
|2018-05-22 |C | TGG-B | Long | 5.29 | Misc …Run Code Online (Sandbox Code Playgroud) 我使用 PyMysql 连接到我的 MySQL 数据库。
cursor.execute(query)
data = cursor.fetchall()
for (id,clientid,timestamp) in cursor:
print id,clientid,timestamp
Run Code Online (Sandbox Code Playgroud)
我想根据时间戳对数据进行排序;喜欢;
sortedList = sorted(data, key=lambda x: x.timestamp, reverse=False)
Run Code Online (Sandbox Code Playgroud)
但游标返回行。如何返回整个数据,以便我可以根据任何参数对它们进行排序?
ps:这里的数据包含多行,例如;
1, '1170', 'AS0001', 1, '1', datetime.datetime(2018, 3, 15, 10, 56), Decimal('15185.7562'), Decimal('0.0000'), Decimal('19814.3181')
python ×10
pandas ×5
dataframe ×2
arrays ×1
brotli ×1
c++ ×1
date ×1
datetime ×1
decode ×1
indexing ×1
matplotlib ×1
numpy ×1
pymysql ×1
python-3.x ×1
python-c-api ×1
salesforce ×1
scatter-plot ×1