草庐IT

python - Pandas DataFrame - 将一列的值与相同的索引合并到列表中

我一直在这个问题上有一段时间无济于事。这几乎是atleastoneotherquestiononhere的重复,但我无法完全弄清楚如何从在线相关答案中找到我正在寻找的东西。我有一个PandasDataFrame(我们称之为df),看起来像这样:NameValueValue2'A''8.8.8.8''x''B''6.6.6.6''y''A''6.6.6.6''x''A''8.8.8.8''x'其中Name是索引。我想将它转换成类似这样的东西:NameValueValue2'A'['8.8.8.8','6.6.6.6']'x''B'['6.6.6.6']'y'因此,基本上,对应于同一索引的

python - 用于访问 Pandas 中的列的括号表示法和点表示法之间的速度差异

让我们有一个小数据框:df=pd.DataFrame({'CID':[1,2,3,4,12345,6]})当我搜索成员资格时,速度会因我要求在df.CID或df['CID']中搜索而有很大不同。In[25]:%timeit12345indf.CIDOut[25]:89.8µs±254nsperloop(mean±std.dev.of7runs,10000loopseach)In[26]:%timeit12345indf['CID']Out[26]:42.3µs±334nsperloop(mean±std.dev.of7runs,10000loopseach)In[27]:type(df

python - Pandas 将 NaN 强制到每个索引处每列的底部

我有一个DataFrame,其中多行跨越每个索引。以第一个索引为例,有这样一个结构:df=pd.DataFrame([["A","first",1.0,1.0,np.NaN],[np.NaN,np.NaN,2.0,np.NaN,2.0],[np.NaN,np.NaN,np.NaN,3.0,3.0]],columns=["ID","Name","val1","val2","val3"],index=[0,0,0])Out[4]:IDNameval1val2val30Afirst11NaN0NaNNaN2NaN20NaNNaNNaN33我想对每一列进行排序/排序,使NaN位于给定索引处每一

python - 按组每列的唯一值数

考虑以下数据框:ABE0barone11barthree12fluxsix13fluxthree24foofive25fooone16footwo17footwo2我想为A的每个值查找其他列中唯一值的数量。我认为以下内容可以做到这一点:df.groupby('A').apply(lambdax:x.nunique())但是我得到一个错误:AttributeError:'DataFrame'objecthasnoattribute'nunique'我也试过:df.groupby('A').nunique()但我也得到了错误:AttributeError:'DataFrameGroupBy

python - 如何获取 Scipy 稀疏矩阵(csr_matrix 和 csc_matrix)中每一行的总和和每一列的总和?

我有一个非常大的Scipy稀疏矩阵(CSR_MATRIX)。我只想知道如何计算每一行的值之和以及矩阵每一列的值之和。我有一个执行相同操作的代码,但它使用的是CSC_MATRIX。这两者在行列求和方面有什么不同吗?我想也许我可以获得其他人也可以使用的快速响应,或者我可以自己测试。fromscipy.sparseimport*fromscipyimport*row=array([0,0,1,2,2,2])col=array([0,2,2,0,1,2])data=array([1,2,3,4,5,6])csr_matrix((data,(row,col)),shape=(3,3)).tode

python - Groupby 所选 DataFrame 列的值的给定百分位数

假设我有一个DataFrame,其中的列仅包含实数值。>>dfcol1col2col300.907609824.20799113.74365915236.48884222.3586963245.09259230.00679300.000000419.319746119697.405685我想按所选列(例如col1)的四分位数(或我指定的任何其他百分位数)对其进行分组,以对这些组执行一些操作。理想情况下,我想做类似的事情:df.groupy(quartiles_of_col1).mean()#notworking,howtocodequartiles_of_col1?输出应给出对应于co

python - 根据两列的值选择 Pandas 数据框行

我希望根据两个列值选择一些特定的行。例如:d={'user':[1.,2.,3.,4],'item':[5.,6.,7.,8.],'f1':[9.,16.,17.,18.],'f2':[4,5,6,5],'f3':[4,5,5,8]}df=pd.DataFrame(d)printdfOut:f1f2f3itemuser094451116556221765733185884我想根据“用户”和“项目”的值选择行。给定一个存储[user,item]值对的2dnumpy数组:samples=np.array([[1,5],[3,7],[3,7],[2,6]])Out:array([[1,5],

python - 如何使用 lambda 函数更改 pandas df 中任意列的名称?

有什么方法可以使用lambda更改pandas数据框中的某些列名称,但不是全部?例如,假设此数据框包含名称为osx、centos、ubunto、windows的列。在此数据框中,我想用附加x的列名替换所有列名,因此在这种情况下,我可以通过以下方式重命名列名:df.rename(columns=lambdax:x+'x')但是,如果我想重命名ubunto以外的所有列名,我该怎么做呢?所以我要获取的是数据框,其名称为osxx、centosx、ubunto、windowsx。实际上,我的真实数据框有更多的列,所以我不喜欢使用通常的字典语法逐一写出,而是希望在可行的情况下依靠lambda函数。

python - 遍历 numpy 数组列的所有成对组合

我有一个大小为numpy的数组arr.size=(200,600,20).我想计算scipy.stats.kendalltau在最后两个维度的每个成对组合上。例如:kendalltau(arr[:,0,0],arr[:,1,0])kendalltau(arr[:,0,0],arr[:,1,1])kendalltau(arr[:,0,0],arr[:,1,2])...kendalltau(arr[:,0,0],arr[:,2,0])kendalltau(arr[:,0,0],arr[:,2,1])kendalltau(arr[:,0,0],arr[:,2,2])......kendall

python - 展平具有类型列表值的列,同时在 Pandas 中相应地复制另一列的值

尊敬的powerPandas专家:我正在尝试实现一个函数来展平具有类型列表元素的数据框的列,我希望数据框的每一行都具有列表类型的元素,除了指定列之外的所有列都是flattened将被复制,而指定的列将具有列表中的值之一。以下说明我的要求:input=DataFrame({'A':[1,2],'B':[['a','b'],'c']})AB01[a,b]12cexpected=DataFrame({'A':[1,1,2],'B':['a','b','c']},index=[0,0,1])AB01a01b12c我觉得可能有一个优雅的解决方案/概念,但我正在努力。这是我的尝试,还没有成功。de