我试图让python读取一个excel文件,然后从以excel文件中的行命名的.csv文件和.csv文件中的索引数据创建数据,并将它们粘贴到excel文件中。
excel文件已被放入一个dataframe中,其布局如下:
Name Location Date Check_2 ... Volume VWAP $Volume Trades
0 Orange New York 20200501 X ... NaN NaN NaN NaN
1 Apple Minsk 20200504 X ..
假设我在下面有df:
ID V
0 A 1
1 A 2
2 B 4
3 B 3
所期望的产出是:
V
0 NaN
1 1.0
2 NaN
3 -1.0
这可以使用groupby和lambda以及diff来完成。
df.groupby('ID').apply(lambda x: x.diff())
我正试图想出一个不依赖lambda的解决方案,因为这很快就会变得非常缓慢。有什么想法吗?
更新
(1)使用groupby、lambda和diff和(2)仅使用groupby和diff的性能比较
1
3.67 ms ± 2
为了用id来计算每个值的频率,我们可以使用value_counts和groupby来做一些事情。
>>> df = pd.DataFrame({"id":[1,1,1,2,2,2], "col":['a','a','b','a','b','b']})
>>> df
id col
0 1 a
1 1 a
2 1 b
3 2 a
4 2 b
5 2 b
>>> df
我有一个dataframe有两个列: unix_time和user。它有数千行,这是它的一部分:
unix_time user
2000000000000 A
2000000000001 A
2000000000002 B
2000000000003 B
2000000000004 B
我想通过以下方法计算每个用户总共花费了多少unix_time:
计算行间的时间差。例:unix_time column (row2 - row1)
如果它们来自同一用户,则将时间差之和。例:sum(row2 - row1) and (row3 - row2)
输出
基本上,我想数的最频繁的项目分组为2个变量。我使用以下代码:
dfgrouped = data[COLUMNS.copy()].groupby(['Var1','Var2']).agg(lambda x: stats.mode(x)[1])
此代码工作,但不工作的列有南值,因为Nan值是浮动的,而其他是str。因此,显示了此错误:
'<' not supported between instances of 'float' and 'str'
我想省略NaN值和其余的计数模式。因此str(x)不是一个解决方案
Suppose we have a dataframe like this:
name value
'hi' 1
'hi' 2
'hi' 3
'hello' 5
'hello' 6
'hello' 8
如何找到组内差异最大的组名?
(在上面的示例中,组内的最大差异是3,那么如何从name列中选择'hello‘?)
我需要根据每个人的id (name)和登录时间(login_time)来计算数据集中经过的时间。我希望看到这个df中列出的每个个体从第一个login_time到最后一个login_time之间的时间:
数据示例:
name login_time
alex 2020-12-18T10:50:35
alex 2020-12-19T11:50:11
sue 2020-10-15T10:00:35
sue 2020-10-16T09:50:22
不幸的是,实际数据集有超过80万行。如果只是样本数据,我就这样做:
df = pd.read_csv('filepathto.
我认为这将是超级直截了当的,但我被卡住了。我尝试过以几种不同的方式进行分组,还创建了一个.diff()列并遍历唯一的名称,但我仍然不能让它工作。 我得到的最多的就是第一个“约会三明治”,然后剩下的就被忽略了。 基本上,我有一个如下所示的表: Name
Bob Smith 6/1/2020
Bob Smith 6/2/2020
Bob Smith 6/3/2020
Bob Smith 6/10/2020
Bob Smith 6/11/2020
Bob Smith 6/12/2020
Bob Smith 6/13/2020
Joe Doe 5/20/2020
我知道你可以用一个系列来做到这一点,但我似乎不能用一个数据帧来做到这一点。 我有以下几点: name note age
0 jon likes beer on tuesdays 10
1 jon likes beer on tuesdays
2 steve tonight we dine in heck 20
3 steve tonight we dine in heck 我正在尝试生成以下内容: name note
我有颜色、大小等属性,我想按start_date和end_date进行分组,并按id和属性值进行聚合。
id color size start_date end_date
A1 blue m 1/1/2022 3/1/2022
A1 blue l 3/1/2022 5/1/2022
A1 yellow l 5/1/2022 NaN
A1 blue 1/1/2022 5/1/2022
A1 yellow 5/1/2022 NaN
A1 m 1/1/2022 3/1/2022
A1 l 3/1/2022 NaN
我有一个熊猫数据列表,我想对所有的熊猫执行一个模式操作。
所有数据文件都有相同的布局:
date是dt.date对象,感情是整数(-1、0或1)。我想得到一个数据组的日期,情感是原始的模式(或一个模式的列表,如果有更多)。
我用它来聚合:
df = df.groupby('date').agg(pd.Series.mode)
它可以很好地处理几乎所有的数据文件,其中只有一个返回一个错误:
File "..\lib\site-packages\pandas\core\apply.py", line 420, in agg_list_like
rais
我有一个数据集,df,其中我试图计算一个特定组在一段时间内的百分比增长。以下是数据集:
date size type
1/1/2020 1 a
1/1/2020 1 a
1/1/2020 3 a
1/1/2020 1 b
1/1/2020 2 b
1/1/2020 0 b
2/1/2020 5 a
2/1/2020 6 a
2/1/20
我现在得到的是这样一个DataFrame:
id ts site type
0 111 2022-07-25 19:07:00.938365 A NaN
1 111 2022-07-25 19:07:00.938371 NaN 1.0
2 222 2022-07-25 19:07:00.938372 NaN NaN
3 222 2022-07-25 19:07:00.938373 NaN 2.0
4 222 2022-07-25 19:07:00.938374 C