小编Kon*_*tin的帖子

什么是 DataFrame.columns.name?

您能向我解释一下“DataFrame.columns.name”属性的用途是什么吗?

我在创建数据透视表并重置索引后无意中得到了它。

import pandas as pd

df = pd.DataFrame(['a', 'b'])
print(df.head())

# OUTPUT:
#    0
# 0  a
  1  b

df.columns.name = 'temp'
print(df.head())

# OUTPUT:
# temp  0
# 0     a
# 1     b
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

在 Pandas DataFrame 的每一列中查找第一个非零值

在 DataFrame 的每一列(从上到下)中获取第一个非零元素的值和索引的 pandoric 方法是什么?

import pandas as pd

df = pd.DataFrame([[0, 0, 0],
                   [0, 10, 0],
                   [4, 0, 0],
                   [1, 2, 3]],
                  columns=['first', 'second', 'third'])

print(df.head())

#    first  second  third
# 0      0       0      0
# 1      0      10      0
# 2      4       0      0
# 3      1       2      3
Run Code Online (Sandbox Code Playgroud)

我想达到的目标:

#        value  pos
# first      4    2
# second    10    1
# third      1    3
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

pyspark 数据框所有列中唯一元素的数量

如何计算 pyspark 数据帧的每一列中唯一元素的数量:

import pandas as pd
from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()
df = pd.DataFrame([[1, 100], [1, 200], [2, 300], [3, 100], [4, 100], [4, 300]], columns=['col1', 'col2'])
df_spark = spark.createDataFrame(df)
print(df_spark.show())
# +----+----+
# |col1|col2|
# +----+----+
# |   1| 100|
# |   1| 200|
# |   2| 300|
# |   3| 100|
# |   4| 100|
# |   4| 300|
# +----+----+

# Some transformations on df_spark here

# How to get a number of unique …
Run Code Online (Sandbox Code Playgroud)

python dataframe apache-spark apache-spark-sql pyspark

8
推荐指数
3
解决办法
7513
查看次数

Python 与 C++ 中的命名空间

Python 中与 C++ 中最接近的概念namespaceusing语句是什么?

c++ python namespaces using

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

Python 中具有特定参数的抽象方法

我用 abc 包实现了抽象类。下面的程序显示没有问题。

有没有办法让它失败,因为抽象MyMethod确实有一个参数,a但类中的“MyMethod”的实现Derivative没有?所以我不仅要指定接口类中的方法,还要指定Base这些方法的参数。

import abc

#Abstract class
class Base(object):
    __metaclass__  = abc.ABCMeta

    @abc.abstractmethod
    def MyMethod(self, a):
        'MyMethod prints a'


class Derivative(Base)

    def MyMethod(self):
        print 'MyMethod'
Run Code Online (Sandbox Code Playgroud)

python oop class abc abstract

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

Python:无法使用super()调用父类析构函数

我无法从Child类的析构函数中调用Parent类的析构函数.请检查以下代码:

class BaseClass(object):
    def __del__(self):
        print 'BaseClass->Destructor'

class DerivativeClass(BaseClass):
    def __del__(self):
        print 'DerivativeClass->Destructor'
        #Invoke destructor of the base class, it works 
        BaseClass.__del__(self)           
        #Doesn't work
        #super(DerivativeClass, self).__del__() 

instance = DerivativeClass()
Run Code Online (Sandbox Code Playgroud)

当我使用时super(DerivativeClass, self).__del__(),DerivativeClass.__del__()我收到以下错误:

Exception TypeError: 'must be type, not None' in <bound method 
DerivativeClass.__del__ of <__main__.DerivativeClass object at 0xb73a682c>> ignored
Run Code Online (Sandbox Code Playgroud)

题:

为什么我不能super在子类的析构函数中使用它,而它在子类的构造函数中完全没问题?

python destructor super

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

从C++代码自动生成流程图

我需要使用C++代码自动构建流程图,理想情况下每个源文件一个流程图.是否有任何工具(最好是C++/Python,开源高度可配置 - 所以我可以改变外观)我可以用来创建流程图?

http://www.faqs.org/patents/img/20110088010_08.png

c++ python flowchart activity-diagram

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

获取Python包中的所有类名

我需要获取Python包中所有类的列表.起初我得到所有文件名(它工作正常,从stackoverflow获取):

from os import listdir, getcwd
from os.path import isfile, join
mypath = getcwd()
onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]
Run Code Online (Sandbox Code Playgroud)

然后我检查所有文件,它不能正常工作:

for x in onlyfiles:
    for name, obj in inspect.getmembers(x):
        if inspect.isclass(obj):
            print obj
Run Code Online (Sandbox Code Playgroud)

输出是:

<type 'str'>
....
<type 'str'>
Run Code Online (Sandbox Code Playgroud)

但是,以下代码正常工作:

    for name, obj in inspect.getmembers(example.py):
        if inspect.isclass(obj):
            print obj
Run Code Online (Sandbox Code Playgroud)

你能帮我弄清楚错误是什么吗?

python class

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

(void(*)(void*)的含义)

你能解释一下我(void (*)(void *))在下面的表达式中的含义是什么:

(void (*)(void *))pthread_mutex_unlock
Run Code Online (Sandbox Code Playgroud)

c++ multithreading casting

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

使用谷歌测试来检查回调

我有一个类Foo存储指向回调的指针.可以使用方法调用回调InvokeCallback().

void* SomeCallback(void* a) {

  return (void*)(*(int*)a + 10);

}


class Foo {

public: 

    typedef void* (*CallbackFunction)(void*);

    SetCallback(CallbackFunction callback) {
        this->callback = callback;
    }

    InvokeCallback() {
        callback(20);
    }

private:

    CallbackFunction callback;

}
Run Code Online (Sandbox Code Playgroud)

如何测试(使用谷歌测试)SomeCallback()使用特定参数调用(在上述情况下为20)?

编辑:

我提出了一个非常难看的解决方案.测试通过,但最后出现了新的错误ERROR: 1 leaked mock object found at program exit.

class MockCallbackClass {
public:
    MOCK_METHOD1(SomeCallback, void*(void*));
};

MockCallbackClass mock; // Nasty global variable

void* __SomeOtherCallback(void* a) {

    return mock.SomeCallback(a);

}

TEST(Callback, MockCallback) {

    Foo foo;
    foo.SetCallback(__SomeOtherCallback);
    EXPECT_CALL(mock, SomeCallback((void*)10)).WillOnce(testing::Return((void*)20));

}
Run Code Online (Sandbox Code Playgroud)

c++ googletest googlemock

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