我有通过http请求访问的数据,并由服务器以逗号分隔格式发回,我有以下代码:
site= 'www.example.com'
hdr = {'User-Agent': 'Mozilla/5.0'}
req = urllib2.Request(site,headers=hdr)
page = urllib2.urlopen(req)
soup = BeautifulSoup(page)
soup = soup.get_text()
text=str(soup)
Run Code Online (Sandbox Code Playgroud)
文字内容如下:
april,2,5,7
may,3,5,8
june,4,7,3
july,5,6,9
Run Code Online (Sandbox Code Playgroud)
如何将此数据保存到CSV文件中.我知道我可以按照以下方式做一些事情来逐行迭代:
import StringIO
s = StringIO.StringIO(text)
for line in s:
Run Code Online (Sandbox Code Playgroud)
但我不确定如何正确地将每一行写入CSV
编辑--->感谢您提供的反馈意见,解决方案相当简单,可以在下面看到.
解:
import StringIO
s = StringIO.StringIO(text)
with open('fileName.csv', 'w') as f:
for line in s:
f.write(line)
Run Code Online (Sandbox Code Playgroud) 我有一个带有两列的pandas数据框,一个是温度,另一个是时间.
我想制作名为min和max的第三和第四列.这些列中的每一列都将用nan填充,除非存在局部最小值或最大值,然后它将具有该极值的值.
这是一个数据样本的样本,基本上我试图识别图中的所有峰值和低点.
是否有任何带有熊猫的内置工具可以实现这一目标?
假设我有以下表格/数据框:
d = {'store': ['s1', 's1', 's2', 's2',], 'product': ['a', 'c', 'a', 'c']}
df = pd.DataFrame(data=d)
print(df)
store product
0 s1 a
1 s1 c
3 s2 a
4 s2 c
Run Code Online (Sandbox Code Playgroud)
我想找出每对产品在商店中共同出现的次数。
由于数据非常大(5M 行和大约 50K 个单独的产品和 20K 个单独的商店)并且有很多潜在的共现对,我只想获得每个产品的前 n 个(例如:10)共现和同时发生的次数。示例结果如下:
product_1 product_2 cooccurrence_count
0 a c 2
1 c a 2
Run Code Online (Sandbox Code Playgroud)
用 SQL 代替 Pandas 的有效且高效的解决方案也是可以接受的
我在Windows上运行Redis,但无法使用配置文件运行它。
我尝试跑步:
redis-server 'filepath'/conf/redis.conf
Run Code Online (Sandbox Code Playgroud)
但我收到错误消息
"redis fatal error can't open config file"
Run Code Online (Sandbox Code Playgroud)
如何解决此问题并使Redis服务器读取配置文件?
我正在尝试将一些实时数据可视化合并到我正在开发的Web应用程序中
我目前正在使用matplotlib和plotly。matplot的问题在于它不是基于Web的,而plotly的问题在于其具有流功能的实时绘图选项非常有限。
以下是我尝试创建的绘图类型的示例。所显示的只是静态的,但是由于我有实时数据,所以我想创建实时更新的相同类型的图表
数据是在SQL服务器中存储和更新的,因此我基本上只需要有一个脚本,该脚本将从SQL DB中获取最新值,然后每秒钟左右将其添加到图中。
什么是最好的(HTML兼容)解决方案?
您是否找到解决这个问题的方法?因为我遇到了同样的问题。我已经实现了动态图形绘图,可以使用matplotlib实时并连续刷新该图形。现在,我想在网页上绘制动态图,您有什么建议或例子吗?
我有一个非常简单的代码,如果 id 来自文件,则加载列表,然后迭代列表中的每个 id 并调用 api,在其中传递 id 值并将 api 响应内容转储到文件中。
我想通过并行 api 调用来加快此过程,但是 api 服务器每秒最多允许 5 次调用。另一个关键考虑因素是 api 拉取速度很慢,平均每次调用需要 10 秒才能完成。
我希望能够有多个并行进程,这些进程可以通过某种方式确保每秒最多发生不超过 5 个调用。
这是当前的代码:
import pandas as pd
import numpy as np
from joblib import Parallel, delayed
ids = pd.read_csv('data.csv')
ids = ids['Id'].values.tolist()
def dump_data(df,idx):
filename = base_dir+'\\'+str(idx)+'.csv'
data.to_csv(filename, header= True, index=False) #write data to file
def get_api(idx):
data = call_some_api(idx) #api returns data as pandas dataframe, take about 10 secs
dump_data(df,idx)
Parallel(n_jobs=10, verbose = 50)(delayed(get_api)(idx) for idx in …Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的数据框。
权重列本质上代表每个项目的频率,因此对于每个位置,权重总和将等于 1
请记住,这是一个简化的数据集,实际上有超过 100 列,例如value
d = {'location': ['a', 'a', 'b', 'b'],'item': ['x', 'y', 's', 'v'], 'value': [1, 5, 3, 7], 'weight': [0.9, 0.1, 0.8, 0.2]}
df = pd.DataFrame(data=d)
df
location item value weight
0 a x 1 0.9
1 a y 5 0.1
2 b s 3 0.8
3 b v 7 0.2
Run Code Online (Sandbox Code Playgroud)
我目前有代码可以计算未加权数据的分组中位数、标准差、偏斜和分位数,我使用以下代码:
df = df[['location','value']]
df1 = df.groupby('location').agg(['median','skew','std']).reset_index()
df2 = df.groupby('location').quantile([0.1, 0.9, 0.25, 0.75, 0.5]).unstack(level=1).reset_index()
dfs = df1.merge(df2, how …Run Code Online (Sandbox Code Playgroud) 我在 Python 中将 Selenium 用于一个项目,我想知道是否有一种方法可以录制或流式传输浏览器中正在播放的音频。本质上,我想使用 selenium 来获取音频并将其传递给我的 Python 应用程序,以便我可以处理它。
有没有办法在 Selenium 中做到这一点,或者使用另一个 Python 包?
理想情况下,无论来源如何,我都希望能够在浏览器窗口中播放任何音频。
使用Python中的sqlite3如果我想使用变量而不是固定命令进行数据库查询,我可以这样做:
name = 'MSFT'
c.execute('INSERT INTO Symbol VALUES (?) ', (name,))
Run Code Online (Sandbox Code Playgroud)
当我尝试使用pandas数据框访问SQL数据库时,我可以这样做:
df = pd.read_sql_query('SELECT open FROM NYSEXOM', conn)
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何在引用变量时将数据从SQL加载到pandas数据框.我尝试过以下方法:
conn = sqlite3.connect('stocks.db')
dates= [20100102,20100103,20100104]
for date in dates:
f = pd.read_sql_query('SELECT open FROM NYSEMSFT WHERE date = (?)', conn, (date,))
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我得到一个错误,说"提供的绑定数量不正确,当前语句使用1,并且提供了0"
如何使用变量引用正确格式化命令以将SQL数据加载到pandas数据框中?
我有一个pandas数据框,其中列是日期,每行是一个独立的时间序列.
我尝试使用以下内容获取每行的最后一个值:
df['last'] = df.iloc[:,-1]
Run Code Online (Sandbox Code Playgroud)
但是,某些行在最后一列中具有NAN值.
如何连续获得最后一个非NAN值?