小编bet*_*eta的帖子

使用Pandas groupby()+ apply()和参数

我想df.groupby()结合使用apply()将函数应用于每组的每一行.

我通常使用以下代码,这通常有效(请注意,这是没有的groupby()):

df.apply(myFunction, args=(arg1,))
Run Code Online (Sandbox Code Playgroud)

随着groupby()我尝试了以下内容:

df.groupby('columnName').apply(myFunction, args=(arg1,))
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

TypeError:myFunction()得到一个意外的关键字参数'args'

因此,我的问题是:我如何使用groupby()apply()需要参数的函数?

python apply dataframe pandas pandas-groupby

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

使用试用twilio帐户发送短信

我想尝试发送短信到奥地利的手机.我已经建立了免费试用twilio帐户.但是,我的twilio帐户似乎没有能力这样做.但我认为,应该可以发送短信与试用帐户?

这是我的twilio号码的截图,你可以看到它无法发送消息: 在此输入图像描述

这是我得到的例外,当我运行我试图发送短信的python代码时:

twilio.rest.exceptions.TwilioRestException: HTTP 400 error: 21606: The From phone number +43720881723 is not a valid, SMS-capable inbound phone number or short code for your account.
Run Code Online (Sandbox Code Playgroud)

关于如何让这个运行的任何想法?换句话说:我如何激活我的免费twilio帐户的短信功能?如果这是可能的,有什么限制,即我可以发送多少免费短信?

谢谢!

messaging sms twilio

18
推荐指数
4
解决办法
2万
查看次数

在新的pandas数据帧列中计算年,月等的日期时间差异

我有一个像这样的pandas数据框:

Name    start        end
A       2000-01-10   1970-04-29
Run Code Online (Sandbox Code Playgroud)

我想添加一个新列,提供年份,月份,天数startend列之间的差异.

所以结果应该是这样的:

Name    start        end          diff
A       2000-01-10   1970-04-29   29y9m etc.
Run Code Online (Sandbox Code Playgroud)

diff列也可以是一个datetime对象或一个timedelta对象,但对我而言,关键在于,我可以轻松地从中获取年份月份.

我到现在为止尝试的是:

df['diff'] = df['end'] - df['start']
Run Code Online (Sandbox Code Playgroud)

这导致新列包含10848 days.但是,我不知道如何将天数转换为29y9m等.

python datetime timedelta pandas

15
推荐指数
5
解决办法
2万
查看次数

得到numpy ndarray的描述性统计数据

我使用以下代码创建一个numpy-ndarray.该文件有9列.我明确键入每列:

dataset = np.genfromtxt("data.csv", delimiter=",",dtype=('|S1', float, float,float,float,float,float,float,int))
Run Code Online (Sandbox Code Playgroud)

现在我想为每一列(min,max,stdev,mean,median等)获得一些描述性统计数据.难道不应该有一个简单的方法来做到这一点?

我试过这个:

from scipy import stats
stats.describe(dataset)
Run Code Online (Sandbox Code Playgroud)

但是这会返回一个错误: TypeError: cannot perform reduce with flexible type

我的问题是:如何获得创建的numpy-ndarray的描述性统计信息.

python numpy scipy multidimensional-array

12
推荐指数
3
解决办法
4万
查看次数

Pandas读取带有浮点值的csv文件导致奇怪的舍入和十进制数字

我有一个包含数值的csv文件,如1524.449677.总有6个小数位.

当我通过pandas导入csv文件(和其他列)时read_csv,该列自动获取数据类型object.我的问题是价值显示为2470.6911370000003实际应该是2470.691137.或者值2484.30691显示为2484.3069100000002.

这似乎是某种方式的数据类型问题.我试图read_csv通过给出dtype参数来导入via时显式提供数据类型{'columnname': np.float64}.问题仍然没有消失.

如何在源csv文件中获取导入和显示的值?

python csv floating-point rounding pandas

12
推荐指数
2
解决办法
6016
查看次数

pandas groupby计数字符串出现在列上

我想计算分组的pandas dataframe列中字符串的出现次数.

假设我有以下Dataframe:

catA    catB    scores
A       X       6-4 RET
A       X       6-4 6-4
A       Y       6-3 RET
B       Z       6-0 RET
B       Z       6-1 RET
Run Code Online (Sandbox Code Playgroud)

首先,我想分组catAcatB.而对于每个组的我要算发生RETscores列.

结果应如下所示:

catA    catB    RET
A       X       1
A       Y       1
B       Z       2
Run Code Online (Sandbox Code Playgroud)

按两列分组很容易: grouped = df.groupby(['catA', 'catB'])

但下一步是什么?

python group-by count dataframe pandas

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

在熊猫数据框中找到条纹

我有一个pandas数据帧如下:

time    winner  loser   stat
1       A       B       0
2       C       B       0
3       D       B       1
4       E       B       0
5       F       A       0
6       G       A       0
7       H       A       0
8       I       A       1
Run Code Online (Sandbox Code Playgroud)

每一行都是匹配结果.第一列是匹配的时间,第二列和第三列包含赢家/输家,第四列是匹配的一个统计.

我想检测每个输家的统计数据为零.

预期结果应如下所示:

time    winner  loser   stat    streak
1       A       B       0       1
2       C       B       0       2
3       D       B       1       0
4       E       B       0       1
5       F       A       0       1
6       G       A       0       2
7       H       A       0       3 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

10
推荐指数
2
解决办法
1540
查看次数

Python Timedelta64 将天转换为月

我有一个 Pandas 数据框,其中有 2 列代表开始时间戳和结束时间戳:

start       end
2016-06-13  2016-07-20
Run Code Online (Sandbox Code Playgroud)

这些列的数据类型是datetime64[ns].

我现在想创建一个新列,显示月份的差异:

start       end         duration
2016-06-13  2016-07-20  1.1
Run Code Online (Sandbox Code Playgroud)

我尝试的是执行以下操作:

df['duration'] = df['end'] - df['start']
Run Code Online (Sandbox Code Playgroud)

结果如下:

start       end         duration
2016-06-13  2016-07-20  37 days 00:00:00.000000000
Run Code Online (Sandbox Code Playgroud)

然后我尝试执行以下操作:

df['duration'] = df['end'] - df['start']).dt.months
Run Code Online (Sandbox Code Playgroud)

但这会产生以下错误

AttributeError:“TimedeltaProperties”对象没有属性“months”

duration该列的数据类型是timedelta64[ns].

我怎样才能达到预期的结果?

python timedelta python-datetime

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

从Pandas数据框中删除重复的行,其中只有一些列具有相同的值

我有一个pandas数据帧如下:

A   B   C
1   2   x
1   2   y
3   4   z
3   5   x
Run Code Online (Sandbox Code Playgroud)

我希望在特定列中只有一行共享相同值的行.在上面的例子中,我指的是A列和B列.换句话说,如果列AB的值在数据帧中出现不止一次,则只应保留一行(哪一行无关紧要).

FWIW:所谓的重复行的最大数量(即,列AB相同)是2.

结果应该像这样说:

A   B   C
1   2   x
3   4   z
3   5   x
Run Code Online (Sandbox Code Playgroud)

要么

A   B   C
1   2   y
3   4   z
3   5   x
Run Code Online (Sandbox Code Playgroud)

python duplicates dataframe pandas

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

拆分pandas列并将最后一个元素添加到新列

我有一个包含(除了其他列)全名的pandas数据框:

 fullname
 martin master
 andreas test
Run Code Online (Sandbox Code Playgroud)

我想创建一个新列,它沿着空格分割fullname列,并将最后一个元素分配给一个新列.结果应如下所示:

 fullname           lastname
 martin master      master
 andreas test       test
Run Code Online (Sandbox Code Playgroud)

我以为它会像这样工作:

df['lastname'] = df['fullname'].str.split(' ')[-1]
Run Code Online (Sandbox Code Playgroud)

但是,我得到了一个 KeyError: -1

我使用[-1],这是拆分组的最后一个元素,以确保我得到真正的姓氏.在某些情况下(例如像安德烈·马丁大师这样的名字),这有助于获得姓氏,即主人.

那我该怎么做呢?

python split pandas

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