小编phe*_*eon的帖子

用pandas DataFrame中的逗号将数字字符串转换为float

我有一个DataFrame包含数字作为字符串与数千标记的逗号.我需要将它们转换为浮点数.

a = [['1,200', '4,200'], ['7,000', '-0.03'], [ '5', '0']]
df=pandas.DataFrame(a)
Run Code Online (Sandbox Code Playgroud)

我猜我需要使用locale.atof.确实

df[0].apply(locale.atof)
Run Code Online (Sandbox Code Playgroud)

按预期工作.我得到了一系列花车.

但是当我将它应用于DataFrame时,我收到一个错误.

df.apply(locale.atof)
Run Code Online (Sandbox Code Playgroud)

TypeError :("无法将系列转换为",在索引0处发生')

df[0:1].apply(locale.atof)
Run Code Online (Sandbox Code Playgroud)

给出另一个错误:

ValueError :('float()的无效文字:1,200',u'occurred在索引0')

那么,我如何将这个DataFrame字符串转换为浮动的DataFrame?

python pandas

59
推荐指数
3
解决办法
5万
查看次数

从python创建"经济学家"风格图

使用python和marplotlib以及像seaborn这样的工具,我想创建一个像The Economist这样的图形(因为我认为风格很棒.)

希腊债务

这是一个时间序列图,我想要重现的关键事项是水平网格线,标签与带有刻度标记的下水平轴匹配.网格线两端的不同颜色标签将是奖励,具有相应的标题(左和右对齐).注释将是双重奖励.

我尝试使用seaborn制作类似的东西,但无法迈出第一步.

python matplotlib seaborn

10
推荐指数
1
解决办法
2206
查看次数

如何在python matplotlib中添加第三级刻度

Matplotlib轴有主要和次要刻度.如何在Minor下面添加第三级刻度?

例如

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.ticker

t = np.arange(0.0, 100.0, 0.1)
s = np.sin(0.1*np.pi*t)*np.exp(-t*0.01)

fig, ax = plt.subplots()
plt.plot(t, s)

ax1 = ax.twiny()
ax1.plot(t, s)

ax1.xaxis.set_ticks_position('bottom')

majors = np.linspace(0, 100, 6)
minors = np.linspace(0, 100, 11)
thirds = np.linspace(0, 100, 101)

ax.xaxis.set_major_locator(matplotlib.ticker.FixedLocator(majors))
ax.xaxis.set_minor_locator(matplotlib.ticker.FixedLocator(minors))
ax1.xaxis.set_major_locator(matplotlib.ticker.FixedLocator([]))
ax1.xaxis.set_minor_locator(matplotlib.ticker.FixedLocator(thirds))
ax1.tick_params(which='minor', length=2)
ax.tick_params(which='minor', length=4)
ax.tick_params(which='major', length=6)
ax.grid(which='both',axis='x',linestyle='--')

plt.axhline(color='gray')

plt.show()
Run Code Online (Sandbox Code Playgroud)

使用孪生x轴产生我想要的效果.

三级滴答

有没有更好的办法?

python matplotlib

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

如何找到小于x的最大整数?

如果x2.3,则math.floor(x)返回2.0小于或等于的最大整数x(作为浮点数.)

如何获得严格小于(作为整数)i的最大整数?x

我想出的最好的是:

i = int(math.ceil(x)-1)
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

需要注意的是,如果x2.0那么math.floor(x)的回报2.0,但我需要的最大整数小于2.0,这是1.

python math floating-point

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

如何安装condas不支持的包

我在OS X上尝试Anaconda,需要安装python包"npTDMS".

我试过了

conda install nptdms
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误

错误:当前osx-64通道中找不到匹配的包:nptdms您可以在Binstar上搜索此包

binstar搜索-t conda nptdms

所以我尝试了为linux-64找到了一个包auto/nptdms,我认为它不起作用.

所以,经过一番挖掘,我在这里找到了指示

并尝试过

conda skeleton pypi npTDMS
conda build npTMDS
Run Code Online (Sandbox Code Playgroud)

似乎工作(测试通过.)

但是之后

import nptmds
Run Code Online (Sandbox Code Playgroud)

回报

ImportError:没有名为nptdms的模块

所以我试过了

conda pipbuild nptdms
Run Code Online (Sandbox Code Playgroud)

一段时间后错误结束了

错误:包/名称必须小写,得到:u'npTDMS'

有人能指出我更好的指导吗?

python conda

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

使用带有MacOSX后端的python matplotlib设置图形的绝对位置

是否可以使用带有MacOSX后端的matplotlib在屏幕上设置图形的绝对位置?

这个答案

如何使用matplotlib设置图形窗口的绝对位置?

表示可以在其他后端执行此操作,但未提及如何在MacOSX后端执行此操作。

python matplotlib

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

为什么我会得到"ImportError:没有名为pdb的模块"

我在OS X中运行python virtualenv.

我在virtualenv中使用pip安装了pdb.

但是当我运行pdb时,我收到以下错误.

Traceback (most recent call last):
  File "/Users/myname/.virtualenvs/myenv/bin/pdb", line 9, in <module>
    load_entry_point('pdb==0.1', 'console_scripts', 'pdb')()
  File "/Users/myname/.virtualenvs/myenv/lib/python2.7/site-packages/pkg_resources.py", line 356, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/Users/myname/.virtualenvs/myenv/lib/python2.7/site-packages/pkg_resources.py", line 2431, in load_entry_point
    return ep.load()
  File "/Users/myname/.virtualenvs/myenv/lib/python2.7/site-packages/pkg_resources.py", line 2147, in load
    ['__name__'])
ImportError: No module named pdb
Run Code Online (Sandbox Code Playgroud)

python macos virtualenv pdb

3
推荐指数
1
解决办法
4497
查看次数

标签 统计

python ×7

matplotlib ×3

conda ×1

floating-point ×1

macos ×1

math ×1

pandas ×1

pdb ×1

seaborn ×1

virtualenv ×1