我有一个包含以下列的数据框:
['id','name','foo1', 'foo1', 'foo1', 'foo2','foo2', 'foo3']
Run Code Online (Sandbox Code Playgroud)
我想获得一个新的数据框,其中共享相同名称的列是平均的:
['id','name','foo1', 'foo2','foo3']
Run Code Online (Sandbox Code Playgroud)
这里列foo1将是原始数据帧中名为foo1的三列的平均值,foo2将是名为foo2的两列的平均值,而foo3将只是foo3
注意:id和name不是数字,我必须保留它们.
我正在使用点击流处理数据框,并且我在点击流中为每个用户提取要在机器学习项目中使用的功能.
数据框是这样的:
data = pd.DataFrame({'id':['A01','B01','A01','C01','A01','B01','A01'],
'event':['search','search','buy','home','cancel','home','search'],
'date':['2018-01-01','2018-01-01','2018-01-02','2018-01-03','2018-01-04','2018-01-04','2018-01-06'],
'product':['tablet','dvd','tablet','tablet','tablet','book','book'],
'price': [103,2,203,103,203,21,21]})
data['date'] = pd.to_datetime(data['date'])
Run Code Online (Sandbox Code Playgroud)
因为我必须为每个用户创建功能,所以我使用groupby/apply使用自定义函数,例如:
featurized = data.groupby('id').apply(featurize)
Run Code Online (Sandbox Code Playgroud)
创建用户功能将占用数据帧的一大块并创建许多(数百个)功能.整个过程太慢了,所以我正在寻找一个更有效地做到这一点的建议.
用于创建功能的函数示例:
def featurize(group):
features = dict()
# Userid
features['id'] = group['id'].max()
# Feature 1: Number of search events
features['number_of_search_events'] = (group['event']=='search').sum()
# Feature 2: Number of tablets
features['number_of_tablets'] = (group['product']=='tablet').sum()
# Feature 3: Total time
features['total_time'] = (group['date'].max() - group['date'].min()) / np.timedelta64(1,'D')
# Feature 4: Total number of events
features['events'] = len(group)
# Histogram of products examined
product_counts = group['product'].value_counts()
# Feature …Run Code Online (Sandbox Code Playgroud) 我在笔记本电脑上使用带有外接显示器的超棒 wm,但有时我只移动并携带笔记本电脑。
我的问题是:当我断开连接以移动笔记本电脑时,在外部显示器中打开的客户端会发生什么?
有没有办法让很棒记住屏幕的布局?目前,我每次插入屏幕时都在使用 arandr,但每次移动笔记本电脑时都这样做很烦人。
一般来说,我正在寻找有关如何使用外部显示器和笔记本电脑处理设置的任何提示。
谢谢!
我有一个数据框,其中的“组”列可以有50个不同的值,而“值”列是数字的。
例如:
pd.DataFrame({'group':['a','b','c','a','a','b','a','c','c'],'value':[2,123,4,2.3,2.5,127,128,4,0.003]})
group value
0 a 2.000
1 b 123.000
2 c 4.000
3 a 2.300
4 a 2.500
5 b 127.000
6 a 128.000
7 c 4.000
8 c 0.003
Run Code Online (Sandbox Code Playgroud)
我想从数据框中删除与其组异常的值,例如abs(zscore)> 3或类似的值。在该示例中,值a,128将被删除,因为它对于组a是异常的,值c,0.003也将被删除。123和127是正常的,因为它们的组是“ b”。
输出应类似于(带有z分数列):
group value
0 a 2.0
1 b 123.0
2 c 4.0
3 a 2.3
4 a 2.5
5 b 127.0
6 c 4.0
Run Code Online (Sandbox Code Playgroud)
什么是有效的方法?
谢谢!
我见过类似的问题,但我的问题更直接,更抽象.
我有一个"n"行的数据帧,"n"是一个小数字.我们可以假设索引只是行号.我想把它转换成一行.
所以,例如,如果我有
A,B,C,D,E
---------
1,2,3,4,5
6,7,8,9,10
11,12,13,14,5
Run Code Online (Sandbox Code Playgroud)
我想要一个带有单行的数据帧:
A_1,B_1,C_1,D_1,E_1,A_2,B_2_,C_2,D_2,E_2,A_3,B_3,C_3,D_3,E_3
--------------------------
1,2,3,4,5,6,7,8,9,10,11,12,13,14,5
Run Code Online (Sandbox Code Playgroud)
在熊猫中最常用的方法是什么?
我想生成一个简单的散点图,在X轴上显示日期,在Y轴上显示数值,并且出现类型升级错误。数据来自熊猫数据框。
这是我所拥有的价值的一小部分
X(熊猫系列):
....
179 2016-11-08 18:03:00
180 2016-11-08 18:16:00
181 2016-11-08 18:18:00
182 2016-11-08 18:19:00
183 2016-11-08 18:20:00
184 2016-11-08 18:21:00
Run Code Online (Sandbox Code Playgroud)
名称:日期,长度:185,dtype:datetime64 [ns]
Y轴不是问题:
....
180 18.266667
181 18.300000
182 18.316667
183 18.333333
184 18.350000
Run Code Online (Sandbox Code Playgroud)
长度:185,dtype:float64
如果我做:
plt.scatter(X,Y)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我收到类型升级错误。谢谢您的帮助!