小编fir*_*ynx的帖子

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万
查看次数

6.5 GB文件中的Pandas read_csv消耗超过170GB RAM

我想提起这件事,只是因为它很疯狂.也许韦斯有一些想法.该文件非常规则:1100行x~3M列,数据以制表符分隔,仅由整数0,1和2组成.显然,这不是预期的.

如果我预先填充下面的数据帧,它会占用大约26GB的RAM.

h = open("ms.txt")
header = h.readline().split("\t")
h.close()
rows=1100
df = pd.DataFrame(columns=header, index=range(rows), dtype=int)
Run Code Online (Sandbox Code Playgroud)

系统信息:

  • python 2.7.9
  • ipython 2.3.1
  • numpy 1.9.1
  • 大熊猫0.15.2.

欢迎任何想法.

python parsing numpy ipython pandas

15
推荐指数
1
解决办法
2666
查看次数

将新行添加到其中尚不存在的数据框中

我有两个dataframes df1df2从同一个源进行了计算的是,但具有不同的方法,从而大部分值是相同的,具有一定的差异.现在,我想df1根据中的值进行更新df2.

例如:

df1 = pd.DataFrame({'name':['john','deb','john','deb'], 'col1':[490,500,425,678], 'col2':[456,625,578,789],'col3':['TN','OK','OK','NY']})
 name col1 col2 col3
 john  490  456  TN
 deb   500  625  OK
 john  425  578  OK
 deb   678  789  NY

df2 = pd.DataFrame({'name':['deb','john','deb','john','deb'], 'col1':[400,490,500,425,678], 'col2':[225,456,625,578,789],'col3':['TN','TN','OK','OK','NY']})
 name col1 col2 col3
  deb  400  225  TN
 john  490  456  TN
  deb  500  625  OK
 john  425  578  OK
 deb   678  789  NY
Run Code Online (Sandbox Code Playgroud)

所以,在这种情况下,.append应该追加仅第一行df2df1.所以,只有当一个新行df2不存在df1(基于名称和col3)时才会添加/更新该列,否则它不会.

这几乎concat应该是应该做的事情.

python python-2.7 pandas

8
推荐指数
1
解决办法
9040
查看次数

将两个具有不匹配指数的熊猫系列相乘

创建两个系列:s1s2df.

每个都有相同的长度但不同的指数.s1.multiply(s2)联合不匹配的指数而不是乘以它们.

我只想逐渐s1反对s2忽略不匹配的指数.

我可以运行s1.reset_index()s2.reset_index()再取我这两个DFS希望之列,因为它把原始索引到一个单独的列,但这是乏味的,我想有可能是做一个简单的方法.

s1.multiply(s2, axis='columns')
Run Code Online (Sandbox Code Playgroud)

似乎也没有用

python series multiplying indices pandas

8
推荐指数
1
解决办法
3545
查看次数

日期三角洲的日期> 292年

我尝试获得各种大熊猫日期的日间三角洲.然而,对于大于292年的时间增量,我获得了负值.例如,

import pandas as pd
dates = pd.Series(pd.date_range('1700-01-01', periods=4500, freq='m'))
days_delta = (dates-dates.min()).astype('timedelta64[D]')
Run Code Online (Sandbox Code Playgroud)

但是,使用DatetimeIndex,我可以做到它,它按我想要的方式工作,

import pandas as pd
import numpy as np
dates = pd.date_range('1700-01-01', periods=4500, freq='m')
days_fun = np.vectorize(lambda x: x.days)
days_delta = days_fun(dates.date - dates.date.min())
Run Code Online (Sandbox Code Playgroud)

那么问题是如何获得Series对象的正确days_delta?

python datetime numpy pandas

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

Pyglet HUD文本位置/缩放

背景

我有一个基于这个例子的HUD游戏

我有一个带有两个gluOrtho2D视图的pyglet应用程序.一个被映射到屏幕的1/1,作为我的HUD.一个映射到游戏世界的,所以它可以扩展.

问题

当游戏世界中的玩家在某个位置渲染时,我想在HUD中显示该玩家的名字.但是HUD对世界物体渲染位置一无所知,世界对屏幕的缩放一无所知.

有没有办法找出屏幕上呈现的内容,或者是否有可能找出或只是反作用于上下文中的当前缩放集?

最小的示例代码

进口

from pyglet import clock, window, font
from pyglet.gl import *
Run Code Online (Sandbox Code Playgroud)

摄像机类可以分类HUD和2D世界之间的差异

class Camera(object):

    def __init__(self, win):
        self.win = win

    def project_world(self):
        glMatrixMode(GL_PROJECTION)
        glLoadIdentity()
        gluOrtho2D(-500, 1000, -500, 500)

    def project_hud(self):
        glMatrixMode(GL_PROJECTION)
        glLoadIdentity()
        gluOrtho2D(0, self.win.width, 0, self.win.height)
Run Code Online (Sandbox Code Playgroud)

包含没有视点渲染的所有内容的HUD.

class Hud(object):

    def __init__(self, win: window.Window):
        self.fps = clock.ClockDisplay()
        self.helv = font.load('Helvetica', 12.0)
        self.text = font.Text(self.helv, "This text does not scale", \
                              x=0, y=0, color=(1, 1, 1, 0.5))

    def draw(self):
        glMatrixMode(GL_MODELVIEW) …
Run Code Online (Sandbox Code Playgroud)

python opengl pyglet

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

如何在 Mac 上将 .po 转换为 .mo 文件?

我尝试过使用 poedit 1.4.6>另存为,但 .mo 不是一个选项。

translation gettext internationalization mo po

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

从MySQL加载500万行到Pandas中

我在坐在(本地)网络上的MySQL数据库中有500万行(所以快速连接,而不是在互联网上).

与数据库的连接工作正常,但如果我尝试做

f = pd.read_sql_query('SELECT * FROM mytable', engine, index_col = 'ID')
Run Code Online (Sandbox Code Playgroud)

这需要长时间.即使是分块chunksize也会很慢.此外,我真的不知道它是挂在那里还是确实检索信息.

我想问一下,对于那些在数据库上处理大数据的人来说,他们如何检索他们的Pandas会话数据?

难道是"聪明",例如,运行查询,以返回结果csv文件并加载成熊猫?听起来比它需要的更多.

mysql pandas

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

多级pandas数据框中的自定义排序列

背景

我有一个大的数据框,有2个级别的列,但是1级行,我正在尝试按如下方式对其进行排序:级别0:按字母顺序排列; 第1级:自定义排序.

import pandas as pd
dictionary = {'A' : {'M': [1,2,3,4,5],
                     'L': [6,7,8,9,1],
                     'F': [3,5,1,3,5]  },
              'C' : {'M': [2,3,4,5,6],
                     'L': [7,8,9,1,2],
                     'F': [0,1,6,3,5]  },
              'B' : {'M': [1,5,2,5,3],
                     'L': [9,5,6,3,4],
                     'F': [6,2,7,1,5] }
         }
reform = {(outerKey, innerKey): values for outerKey, innerDict in dictionary.iteritems() for innerKey, values in innerDict.iteritems()}
pd.DataFrame(reform,index=['g','h','i','j','k'])
Run Code Online (Sandbox Code Playgroud)

我当时拥有的是什么

#        A          B           C
#        F  L   M   F   L   M   F   L   M
#    g  3   6   1   6   9   1   0   7   2 …
Run Code Online (Sandbox Code Playgroud)

python sorting pandas

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

在java中切片列表

我有一个从 selenium-webdriver 得到的列表:

List<WebElement> allElements = driver.findElements(By.xpath(""));
Run Code Online (Sandbox Code Playgroud)

现在我想获取前 6 个元素并打印它们。

java list selenium-webdriver

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