小编Mat*_*a G的帖子

将 Pandas DataFrame 的行作为字典进行迭代

我需要遍历 Pandas 数据帧,以便将每一行作为函数(实际上是类构造函数)的参数传递给**kwargs. 这意味着每一行都应该像一个字典,键是列名,值是每行对应的列名。

这有效,但它的表现非常糟糕:

import pandas as pd


def myfunc(**kwargs):
    try:
        area = kwargs.get('length', 0)* kwargs.get('width', 0)
        return area
    except TypeError:
        return 'Error : length and width should be int or float'


df = pd.DataFrame({'length':[1,2,3], 'width':[10, 20, 30]})

for i in range(len(df)):
    print myfunc(**df.iloc[i])
Run Code Online (Sandbox Code Playgroud)

关于如何提高性能的任何建议?我尝试使用 try 进行迭代df.iterrows(),但出现以下错误:

类型错误:** 之后的 myfunc() 参数必须是映射,而不是元组

我也试过df.itertuples()and df.values,但要么我遗漏了一些东西,要么意味着我必须将每个元组/ np.array 转换为 pd.Series 或 dict ,这也会很慢。我的限制是脚本必须使用 python 2.7 和 pandas 0.14.1。

python performance pandas

17
推荐指数
3
解决办法
2万
查看次数

将.rda转换为pandas数据框

我有一些需要使用Python访问的.rda文件。我的代码如下所示:

import rpy2.robjects as robjects
from rpy2.robjects import r, pandas2ri

pandas2ri.activate()
df = robjects.r.load("datafile.rda")
df2 = pandas2ri.ri2py_dataframe(df)
Run Code Online (Sandbox Code Playgroud)

其中df2是熊猫数据框。但是,它仅包含.rda文件的标题!我已经来回搜寻了。提出的所有解决方案似乎都没有用。

有谁知道如何有效地将.rda数据框转换为熊猫数据框?

python r rpy2

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

继承和 isinstance

我刚刚注意到

isinstance(myob, MyClass) 
Run Code Online (Sandbox Code Playgroud)

不仅返回Truewhenmyob是 的实例MyClass,而且还返回 ifmyob是继承自 的类的实例MyClass

为了更清楚,请考虑以下几点:

class Book(object):
    def __init__(self, cover)
        self._cover = cover

class Novel(Book):
    def __init__(self, cover, category):
        Book.__init__(self, cover)
        self._category = category
Run Code Online (Sandbox Code Playgroud)

实例化Novel时如下:

novel = Novel('hardcover', 'police')
Run Code Online (Sandbox Code Playgroud)

然后

print(isinstance(novel, Book))
Run Code Online (Sandbox Code Playgroud)

print (isinstance(novel , Novel))
Run Code Online (Sandbox Code Playgroud)

两者都打印True.

为什么会这样?在我看来,novel这是一个Novel实例,而不是Book一个......

另外,与此相关:

为了获得“祖母”(原文如此)课程,我这样做:

print(novel.__class__.__bases__)
Run Code Online (Sandbox Code Playgroud)

有更直接的方法吗?

python oop inheritance

0
推荐指数
1
解决办法
6321
查看次数

标签 统计

python ×3

inheritance ×1

oop ×1

pandas ×1

performance ×1

r ×1

rpy2 ×1