我想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()需要参数的函数?
我想尝试发送短信到奥地利的手机.我已经建立了免费试用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帐户的短信功能?如果这是可能的,有什么限制,即我可以发送多少免费短信?
谢谢!
我有一个像这样的pandas数据框:
Name start end
A 2000-01-10 1970-04-29
Run Code Online (Sandbox Code Playgroud)
我想添加一个新列,提供年份,月份,天数start与end列之间的差异.
所以结果应该是这样的:
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等.
我使用以下代码创建一个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的描述性统计信息.
我有一个包含数值的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文件中获取导入和显示的值?
我想计算分组的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)
首先,我想分组catA和catB.而对于每个组的我要算发生RET在scores列.
结果应如下所示:
catA catB RET
A X 1
A Y 1
B Z 2
Run Code Online (Sandbox Code Playgroud)
按两列分组很容易: grouped = df.groupby(['catA', 'catB'])
但下一步是什么?
我有一个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) 我有一个 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].
我怎样才能达到预期的结果?
我有一个pandas数据帧如下:
A B C
1 2 x
1 2 y
3 4 z
3 5 x
Run Code Online (Sandbox Code Playgroud)
我希望在特定列中只有一行共享相同值的行.在上面的例子中,我指的是A列和B列.换句话说,如果列A和B的值在数据帧中出现不止一次,则只应保留一行(哪一行无关紧要).
FWIW:所谓的重复行的最大数量(即,列A和B相同)是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) 我有一个包含(除了其他列)全名的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],这是拆分组的最后一个元素,以确保我得到真正的姓氏.在某些情况下(例如像安德烈·马丁大师这样的名字),这有助于获得姓氏,即主人.
那我该怎么做呢?