相关疑难解决方法(0)

在Python中对pandas中的数据帧进行分类

给出pandas中的以下数据帧:

import numpy as np
df = pandas.DataFrame({"a": np.random.random(100), "b": np.random.random(100), "id": np.arange(100)})
Run Code Online (Sandbox Code Playgroud)

其中id是由以下组成的每个点的ID ab值,哪能仓ab成一组指定的仓(这样我可以再取中值/平均值ab每个仓中)? 对于任何给定的行,df可能具有或(或两者)的NaN值.谢谢.abdf

这是一个更好的例子,使用Joe Kington的解决方案和更逼真的df.我不确定的是如何访问下面每个df.a组的df.b元素:

a = np.random.random(20)
df = pandas.DataFrame({"a": a, "b": a + 10})
# bins for df.a
bins = np.linspace(0, 1, 10)
# bin df according to a
groups = df.groupby(np.digitize(df.a,bins))
# Get the mean of a in each group
print groups.mean()
## But …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

37
推荐指数
3
解决办法
6万
查看次数

更好地装箱大熊猫

我有一个数据框,想要按一系列值过滤或分组,然后获取每个bin中的值计数.

目前,我这样做:

x = 5
y = 17
z = 33
filter_values = [x, y, z]
filtered_a = df[df.filtercol <= x]
a_count = filtered_a.filtercol.count()

filtered_b = df[df.filtercol > x]
filtered_b = filtered_b[filtered_b <= y]
b_count = filtered_b.filtercol.count()

filtered_c = df[df.filtercol > y]
c_count = filtered_c.filtercol.count()
Run Code Online (Sandbox Code Playgroud)

但有没有更简洁的方法来完成同样的事情?

python binning pandas

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

Bin值基于带有pandas的范围

我在文件夹中有多个CSV文件,其值如下:

GroupID.csv是文件名.有这样的多个文件,但值范围在同一XML文件中定义.我正在尝试将它们分组我该怎么做?

更新1:根据BobHaffner的评论,我已经做到了

import pandas as pd 
import glob path =r'path/to/files' 
allFiles = glob.glob(path + "/*.csv")
frame = pd.DataFrame()
list_ = []
for file_ in allFiles:
    df = pd.read_csv(file_,index_col=None, header=None)
    df['file'] = os.path.basename('path/to/files/'+file_)
    list_.append(df)
frame = pd.concat(list_)
print frame
Run Code Online (Sandbox Code Playgroud)

得到这样的东西:

我需要根据XML文件中的bin对值进行分组.我真的很感激任何帮助.

python csv numpy pandas

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

熊猫-Python-如何减去两个不同的日期列

试图用今天的日期减去created_date列填充一列,但出现以下错误:TypeError:-的不支持的操作数类型:'str'和'str'

import datetime
now = datetime.date.today()
today = '{0:%m/%d/%Y}'.format(now).format(now)
today
data['Aging'] = today
data['Aging'] = data['Aging'].sub(data['Created_Date'], axis=0)
Run Code Online (Sandbox Code Playgroud)

TypeError:-:'str'和'str'不支持的操作数类型

python datetime subtraction pandas

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

尝试根据系列四分位数中的相应位置将 Pandas df 系列浮点数转换为四个分类值之一

我正在尝试编写一个函数,该函数通过一个充满浮点数的 Pandas df 系列,并根据它们在系列范围内的位置将它们转换为四个字符串分类变量之一。因此,范围四分位数中的所有值都将转换为低、低中、高中或高。我已经完成了多种方法,但不断收到各种错误消息。最新的尝试及其消息如下。如果有人可以偷看并抛出任何想法/修复,我将不胜感激。谢谢!

def makeseriescategorical(x):
    for i in x:
        if i < 59863.0:
            str(i)
            i.replace(i, "low")
        elif i > 59862.0 and i < 86855.0:
            str(i)
            i.replace(i, "low_mid")
        elif i > 86854.0 and i < 125250.0:
            str(i)
            i.replace(i, "high_mid")
        elif i > 125249.0 and i < 332801:
            str(i)
            i.replace(i, "high")
Run Code Online (Sandbox Code Playgroud)

我在最后一次尝试中得到的错误消息是:AttributeError: 'numpy.float64' object has no attribute 'replace'

我尝试了各种其他方法来使其成为字符串,例如 astype,但我不断收到错误消息。我是编码新手,所以我确信我犯了一个愚蠢的错误的可能性很大,但我很感激任何人能给我的任何帮助。干杯。

python pandas

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

Pandas:如何根据特定值分配组号?

数据框

pd.DataFrame({'a': range(20)})

>>  
    a
0   0
1   1
2   2
3   3
4   4
5   5
6   6
7   7
8   8
9   9
10  10
11  11
12  12
13  13
14  14
15  15
16  16
17  17
18  18
19  19
Run Code Online (Sandbox Code Playgroud)

预期结果:

    a   group_num
0   0   1
1   1   1
2   2   2
3   3   2
4   4   3
5   5   3
6   6   4
7   7   4
8   8   5
9   9   5
10  10 …
Run Code Online (Sandbox Code Playgroud)

pandas

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

标签 统计

pandas ×6

python ×5

numpy ×2

binning ×1

csv ×1

datetime ×1

subtraction ×1