我有一个pandas数据帧,它由300万行和50列组成,所有列都包含整数(正数或负数)。我想创建一个名为'feature‘的新列,它从现有的50列中提取最大的负数。
例如,如果对于给定行,50列包含以下值
-25,-24,-23,...,-1,1,...,23,24,25
“feature”列应返回-1。
因为我的数据帧太大了,所以我尝试的解决方案花费的时间太长了。例如,我尝试过使用列表理解,但是因为我求助于iterrows(),所以它太慢了(itertuples()的性能并没有明显的提高):
import numpy as np
import pandas as pd
from tq
假设我计算了熊猫数据帧中的行数。我使用以下代码来完成此操作:
df.shape
它给出了以下结果:(1700,12)
如何将1700值添加到现有的pandas数据帧中?我们将把与该值相关联的列称为D。
当前数据帧:
A B C
30 40 text
所需数据帧:
A B C D
30 40 text 1700
所以我有一个pandas数据帧,它每10分钟接收一次输入/输出接口流量。我想将这两个时间序列聚合到每小时一次的存储桶中进行分析。看似简单的事情实际上对我来说却是相当具有挑战性的!只需要把桶放到每小时的垃圾桶里
times = list()
ins = list()
outs = list()
for row in results['results']:
times.append(row['DateTime'])
ins.append(row['Intraffic'])
outs.append(row['Outtr
我已经编写了以下Python/Pandas代码,将M行x N列数据帧(A)的每一列乘以M x 1数据帧(b),得到M x N数据帧C:
def multiply_columns(A, b):
C = pd.DataFrame(A.values * b.values, columns=A.columns, index=b.index)
return C
换句话说,它将矩阵的每一列乘以长度相等的列向量。
代码运行良好,但是我想不起这个操作的正式名称了。有什么想法?
我有一个糟糕的CSV文件,里面有多个头文件。它看起来是这样的:
File1:
#HEADER COL1 COL2
data
data
data
#HEADER COL1 COL2 COL3
data
data
data
data
data
#HEADER COL1 COL2 COL3 COL4
data
data
...
由于文件头的原因,我不能用pandas加载它,所以我希望将每个头上的数据拆分到一个单独的文件中(或者pandas中的单独数据帧)。有没有办法做到这一点?
此CSV由
想知道当列类型是分类的(特别是h2o enum类型)时,在h2o dataframe GroupBy对象中求和列时会发生什么。
将pandas数据帧转换为H2o数据帧。然后,我按某一列对行进行分组,并对其他列求和。
location_id price store
------------------
1 10 JCP
1 15 SBUX
3 20 HOL
then after grouping and summing; df.group_by('location_id').sum(['
在pandas中按行或按列混洗数据帧的简单而有效的方法是什么?即如何编写一个函数shuffle(df, n, axis=0),该函数接受一个数据帧、多个随机n和一个轴(axis=0是行,axis=1是列),并返回已经被随机n次的数据帧的副本。
编辑:关键是在不破坏数据帧的行/列标签的情况下执行此操作。如果你只是混洗df.index,就会丢失所有的信息。我希望生成的df与原始的相同,只是行的顺序或列的顺序不同。
Edit2:我的问题不清楚。当我说对行进行混洗时,我指的是独立地对每一行进行混洗。因此,如果您有两列a和b,我希望每一行都按自己的顺序排列,这样您就不会像将每一行作为一个整体重新排序时那
我想从一个目录中读取几个excel文件到pandas中,并将它们连接成一个大的数据帧。不过,我还没能弄明白。所有文件都有5列,它们是: C N S R Q 除了一个包含7列的文件,这些列是 D I C N QI P L 如何才能获得一个包含这些列的大型数据帧 C N S R Q 代码: import pandas as pd
import glob
path = #path
all_files = glob.glob(path + "/*.csv")
li = []
for filename in all
在sql中,从表中选择a.*,count(a.id) as N。group by a.name将给我一个新列‘N’,其中包含符合我的group by规范的计数。
然而,在pandas中,如果我尝试df‘’name‘.value_counts(),我得到的是计数,而不是原始数据帧中的列。
有没有办法在单个步骤/语句中将计数作为原始数据帧中的一列?
我正在寻找最好的方法来计算存储在数据帧中的许多dask delayed指令。我不确定是否应该将pandas数据帧转换为包含delayed对象的dask数据帧,或者是否应该对pandas数据帧的所有值调用compute调用。
我非常感谢大家的建议,因为我在通过嵌套的for循环传递delayed对象的逻辑上遇到了问题。
import numpy as np
import pandas as pd
from scipy.stats import hypergeom
from dask import delayed, compute
steps = 5
sample = [int(x) for x
我有一个数据帧,它基本上看起来如下所示: X1 X2
A 1000
B 976
C 800
. .
. .
. .
X 89
Y 45
Z 26 现在,我想根据X2列中的值从我的数据框中提取一个子样本,其中包含顶部的x%、中间的y%和底部的z%。我的数据帧已经根据X2进行了降序排序。目前,我有这样的代码: a = subset(data, X2 > quantile(X2, prob = 1 - n/100)) 但是,根据X2中的值,这只返回数据帧的前n%。有人知道如