小编alb*_*ert的帖子

来自url的Pandas read_csv

我正在使用Python 3.4和IPython,并具有以下代码.我无法从给定的URL读取csv文件:

import pandas as pd
import requests

url="https://github.com/cs109/2014_data/blob/master/countries.csv"
s=requests.get(url).content
c=pd.read_csv(s)
Run Code Online (Sandbox Code Playgroud)

我有以下错误

"预期的文件路径名或类文件对象,得到类型"

我怎样才能解决这个问题?

python csv request pandas

106
推荐指数
5
解决办法
11万
查看次数

Matplotlib:指定刻度标签的浮点数格式

我试图在matplotlib子图环境中将格式设置为两个十进制数.不幸的是,我不知道如何解决这个任务.

为了防止在y轴上使用科学记数法,我ScalarFormatter(useOffset=False)可以在下面的代码片段中看到.我认为我的任务应该通过将更多的选项/参数传递给使用的格式化程序来解决.但是,我在matplotlib的文档中找不到任何提示.

如何设置两位小数或无(两种情况都需要)?遗憾的是,我无法提供样本数据.


- SNIPPET -

f, axarr = plt.subplots(3, sharex=True)

data = conv_air
x = range(0, len(data))

axarr[0].scatter(x, data)
axarr[0].set_ylabel('$T_\mathrm{air,2,2}$', size=FONT_SIZE)
axarr[0].yaxis.set_major_locator(MaxNLocator(5))
axarr[0].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[0].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[0].grid(which='major', alpha=0.5)
axarr[0].grid(which='minor', alpha=0.2)

data = conv_dryer
x = range(0, len(data))

axarr[1].scatter(x, data)
axarr[1].set_ylabel('$T_\mathrm{dryer,2,2}$', size=FONT_SIZE)
axarr[1].yaxis.set_major_locator(MaxNLocator(5))
axarr[1].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[1].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[1].grid(which='major', alpha=0.5)
axarr[1].grid(which='minor', alpha=0.2)

data = conv_lambda
x = range(0, len(data))

axarr[2].scatter(x, data)
axarr[2].set_xlabel('Iterationsschritte', size=FONT_SIZE)
axarr[2].xaxis.set_major_locator(MaxNLocator(integer=True))
axarr[2].set_ylabel('$\lambda$', size=FONT_SIZE)
axarr[2].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
axarr[2].yaxis.set_major_locator(MaxNLocator(5))
axarr[2].tick_params(direction='out', labelsize=FONT_SIZE)
axarr[2].grid(which='major', alpha=0.5)
axarr[2].grid(which='minor', alpha=0.2)
Run Code Online (Sandbox Code Playgroud)

python matplotlib scipy python-3.x

43
推荐指数
5
解决办法
9万
查看次数

pandas to_csv参数float_format和十进制不适用于索引列

背景

我正在做一些模拟.通过变量参数(rpm仅在这种情况下)进行系统分析,并将结果数据帧的每一个最后一行附加results_df到一个汇总数据帧,该数据帧df包含了对我的系统的baviour依赖于变化rpm.

为了获得适当的绘图和数据分析索引,我将列表中的各种值(此处rpm)转换为pandas系列,ser并将此系列与df包含我感兴趣的结果的汇总数据框连接起来.

由于我感兴趣的每个计算的结果只是每个计算的最后一行,我results_df通过使用从结果数据框中提取这些数据.tail(1).

到目前为止我所做的工作如下所示:

rpm = [0.25, 0.3, 0.5, 0.75, 1.0, 1.5, 2.0]

ser = pd.Series(rpm, name='rpm')
df = pd.DataFrame()
df_list = list()

for i, val in enumerate(rpm):
    results_df = get_some_data_from_somwhere()
    df_list.append(results_df.tail(1))

df = df.append(df_list, ignore_index=True)
df = pd.concat([df, ser], axis=1)
df.set_index('rpm', inplace=True)


with open('foo.csv', 'w') as f:
    data.to_csv(f, index=True, header=True, decimal=',', sep=' ', float_format='%.3f')
Run Code Online (Sandbox Code Playgroud)

问题

我得到的这个csv文件有以下格式:

rpm cooling_inner heating_inner cooling_outlet …
Run Code Online (Sandbox Code Playgroud)

python csv indexing decimal-point pandas

17
推荐指数
1
解决办法
4万
查看次数

Python Killed:9使用从2个csv文件创建的词典运行代码

我正在运行一个一直为我工作的代码.这次我在2个.csv文件上运行它:"data"(24 MB)和"data1"(475 MB)."data"有3列,每列约680000个元素,而"data1"有3列,每列33000000个元素.当我运行代码时,经过大约5分钟的处理后,我就会被"杀死:9".如果这是一个内存问题,如何解决呢?欢迎任何建议!

这是代码:

import csv
import numpy as np

from collections import OrderedDict # to save keys order

from numpy import genfromtxt
my_data = genfromtxt('data.csv', dtype='S', 
                 delimiter=',', skip_header=1) 
my_data1 = genfromtxt('data1.csv', dtype='S', 
                 delimiter=',', skip_header=1) 

d= OrderedDict((rows[2],rows[1]) for rows in my_data)
d1= dict((rows[0],rows[1]) for rows in my_data1) 

dset = set(d) # returns keys
d1set = set(d1)

d_match = dset.intersection(d1) # returns matched keys

import sys  
sys.stdout = open("rs_pos_ref_alt.csv", "w") 

for row in my_data:
    if row[2] in d_match: 
        print [row[1], row[2]] …
Run Code Online (Sandbox Code Playgroud)

python csv dictionary

9
推荐指数
1
解决办法
2万
查看次数

OpenCV:灰度图像以绿色显示

我正在使用OpenCV(opencv-pythonMac OS上的软件包版本3.3.0)开始我的第一步.在内部使用OpenCV jupyter notebook并通过matplotlib绿色图像而不是灰度图像显示灰度图像.

%matplotlib inline

import cv2 as cv
import numpy as np

import matplotlib.pyplot as plt

plt.rcParams['figure.figsize'] = (8.0, 8.0)

img = cv.imread('IMG_20171212_222022.jpg', cv.IMREAD_GRAYSCALE)

plt.imshow(img)
Run Code Online (Sandbox Code Playgroud)

来自jupyter笔记本的绿色图像

你知道这是从哪里来的吗?这是一个错误还是想要的行为?

python opencv matplotlib jupyter-notebook

9
推荐指数
0
解决办法
3190
查看次数

firebase Web API 的所有身份验证/错误列表

为了处理所有可能的auth/错误,Firebase 可以返回到以某种方式无效的登录名,我正在寻找所有auth/错误的完整列表。

我可以在使用 Swift 的 iOS 中找到这样一个列表,但不能为 Web API 找到这样的列表,无论是在旧文档中还是在新文档中。

有人知道auth/列出所有Web API 错误的资源吗?还是不需要这样的列表,因为我的错误处理方法没有很好地设置?


示例片段:

firebase.auth().createUserWithEmailAndPassword(account.mail, account.password).catch(function(error) {
                // TODO: Notify user about error
                var errorCode = error.code;
                var errorMessage = error.message;
                console.log(errorCode)
                console.log(errorMessage)
                if (errorCode === 'auth/email-already-in-use') {
                    console.log('Mail in use')
                    $state.go('register.mail_in_use')
                }
            });
Run Code Online (Sandbox Code Playgroud)

javascript error-handling firebase firebase-authentication

7
推荐指数
4
解决办法
1万
查看次数

IPython/jupyter笔记本中的自动更新模块

我编写了自己的模块,其结构如下:

mymodule/
??? __init__.py
??? part1.py
??? part2.py
??? part3.py
??? part4.py
Run Code Online (Sandbox Code Playgroud)

为了测试我的模块,我使用的是IPython和/或jupyter笔记本(以前的Ipython Notebook).像往常一样我做模块导入

import mymodule
Run Code Online (Sandbox Code Playgroud)

假设我编辑了一些代码,part2.py并希望使用我的模块的更新版本.首先,我认为只需重新导入模块即可import mymodule完成工作,但事实并非如此.要完全重新加载模块,我必须关闭IPython的shell或重新启动jupyter的内核并通过导入再次启动mymodule.

但是,在提供文档时,IPython提供了一个自动更新函数autoreload,该函数提供了不同的模式,可以按如下方式激活:

%load_ext autoreload
%autoreload 1
%aimport mymodule
Run Code Online (Sandbox Code Playgroud)

使用我的两个片段,我这样导入mymodule:

%load_ext autoreload
%autoreload 1
%aimport mymodule

import mymodule

# let's do something with the module here
Run Code Online (Sandbox Code Playgroud)

然而,即使有激活autoreload 1autoreload 2既不IPython的也不jupyter在做什么,我希望他们做的,我还是要退出的IPython的壳或重新启动jupyter的内核,以便使用编辑的代码的part2.py这部分mymodule.

我究竟做错了什么?似乎我没有明白这应该如何运作.

python import ipython ipython-notebook jupyter

6
推荐指数
1
解决办法
2694
查看次数

如何在python中绘制列表的条形图

我的列表看起来像这样

top = [('a',1.875),('c',1.125),('d',0.5)]
Run Code Online (Sandbox Code Playgroud)

有人可以帮我绘制条形图,其中x轴为a,c,d和y轴值为1.875,1.125,0.5?

我尝试使用以下代码进行绘图.

import numpy as np
import matplotlib.pyplot as plt

top = [('a',1.875),('c',1.125),('d',0.5)]

labels, values = zip(*top)
indexes = np.arange(len(labels))
width = 1

plt.bar(indexes, values, width)
plt.xticks(indexes + width * 0.5, labels)
plt.savefig('netscore.png')
Run Code Online (Sandbox Code Playgroud)

我可以绘制条形图,但图表中的y轴值是错误的.

python matplotlib

6
推荐指数
1
解决办法
2万
查看次数

使用Alpine Linux在Docker容器中的LaTeX(Latex的存储库)

我计划在docker环境中使用LaTeX来生成基于服务器的PDF报告。

在当前的测试系统环境中,我正在使用来自集线器的docker容器,它似乎运行得很好。

但是,如前所述容器的dockerfile容器是基于Ubuntu的,由于Ubuntu的系统开销,与我真正需要的功能相比,这导致了相对较大的容器大小。

我认为我可以摆脱Docker Inc.的不必要系统开销只需使用Alpine Linux而不是Ubuntu即可

不幸的是,我在Alpine的存储库中找不到任何LaTeX软件包。我将基于非docker的Alpine系统安装为虚拟机并尝试:

apk update
apk search -v --description 'latex' 
Run Code Online (Sandbox Code Playgroud)

找不到任何相关的软件包。除此之外,我无法使用Google找到有关LaTeX软件包的更多信息。

那么,有没有像官方存储库那样为Alpine提供LaTeX,或者有没有办法在Alpine中使用例如Debian / Ubuntu软件包?


更新:

texlive可用软件包。但是,正如这里讨论的那样这似乎已经被打破了...


由于链接断开而更新:

上面提供的链接已断开。软件包概述的新链接在此处

ubuntu latex pdflatex docker alpine-linux

5
推荐指数
1
解决办法
4475
查看次数

对于平台无关的应用程序,使 pathlib.glob() 和 pathlib.rglob() 不区分大小写

我正在使用pathlib.glob()pathlib.rglob()分别匹配目录及其子目录中的文件。目标文件都是小写.txt和大写.TXT文件。从文件系统读取相应的文件路径,如下所示:

import pathlib

directory = pathlib.Path()
files_to_create = ['a.txt', 'b.TXT']
suffixes_to_test = ['*.txt', '*.TXT']

for filename in files_to_create:
    filepath = directory / filename
    filepath.touch()
    
for suffix in suffixes_to_test:
    files = [fp.relative_to(directory) for fp in directory.glob(suffix)]
    print(f'{suffix}: {files}')
Run Code Online (Sandbox Code Playgroud)

大部分代码库是在 Windows 10 计算机(运行 Python 3.7.4)上开发的,现在已转移到 macOS Monterey 12.0.1(运行 Python 3.10.1)。

在 Windows 上,两个文件a.txtb.TXT都匹配模式:

*.txt: [WindowsPath('a.txt'), WindowsPath('b.TXT')]
*.TXT: [WindowsPath('a.txt'), WindowsPath('b.TXT')]
Run Code Online (Sandbox Code Playgroud)

相比之下,macOS 只有一个文件与每种模式匹配:

*.txt: [PosixPath('a.txt')]
*.TXT: [PosixPath('b.TXT')]
Run Code Online (Sandbox Code Playgroud)

因此,我假设 macOS 文件系统可能区分大小写,而 Windows 则不区分大小写。根据 …

python cross-platform glob case-sensitive pathlib

5
推荐指数
1
解决办法
4610
查看次数