python - 添加列数据框

标签 python pandas

我想在 CellID 列中添加一个数字,以便对它们进行分类。 数据框是这样的:

umap
                           CellID  wnnUMAP_1  wnnUMAP_2
0      KO_d0_r1:AAACAGCCACCTGCTCx  -8.127543   1.593849
1      KO_d0_r2:AAACAGCCACGTAATTx  -7.246094  -4.566527
2      HT_d0_r1:AAACAGCCATAATGAGx   7.617473   2.449949
3      HT_d0_r2:AAACATGCACCTAATGx  -7.944949   6.633856

我的结果就是这个

 umap
                               CellID    wnnUMAP_1   wnnUMAP_2
    0      KO_d0_r1:AAACAGCCACCTGCTCx-0  -8.127543   1.593849
    1      KO_d0_r2:AAACAGCCACGTAATTx-1  -7.246094  -4.566527
    2      HT_d0_r1:AAACAGCCATAATGAGx-2   7.617473   2.449949
    3      HT_d0_r2:AAACATGCACCTAATGx-3  -7.944949   6.633856

我会将 0 添加到 KO_d0_r1,将 -1 添加到 KO_d0_r2,将 -2 添加到 HT_do_r1,将 -3 添加到 HT_d0_r2。 这只是一个例子,我有很多带有前缀 KO_d0_r1 的字符串,等等,所以我会通过后缀来区分它们。 我的尝试是:

umap = umap.rename(columns = {'Unnamed: 0':'CellID'})

但是没用

最佳答案

另一种方法,更简单的解决方案,不需要映射,特别是如果您有大量唯一的 CellID。

  1. 如果df['CellID']中没有重复项:
df['CellID'] = df['CellID'] + '-' + (df.index + 1).astype(str)
  • 如果 df['CellID'] 包含重复项:
  • df
        CellID                      wnnUMAP_1   wnnUMAP_2
    0   KO_d0_r1:AAACAGCCACCTGCTCx  -8.127543   1.593849
    1   KO_d0_r2:AAACAGCCACGTAATTx  -7.246094   -4.566527
    2   HT_d0_r1:AAACAGCCATAATGAGx  7.617473    2.449949
    3   HT_d0_r2:AAACATGCACCTAATGx  -7.944949   6.633856
    4   HT_d0_r2:AAACATGCACCTAATGx  -6.944949   2.633856
    5   HT_d0_r2:AAACATGCACCTAATGx  -5.944949   3.633856
    
    df = df.merge((df['CellID'].drop_duplicates() + '-' + (df['CellID'].drop_duplicates().index + 1).astype(str)).reset_index(name='CellID_classified').eval('CellID= CellID_classified.str.split("-").str[0]').drop('index', axis=1), on='CellID', how='left').drop('CellID', axis=1)
    
    df
        wnnUMAP_1   wnnUMAP_2   CellID_classified
    0   -8.127543   1.593849    KO_d0_r1:AAACAGCCACCTGCTCx-1
    1   -7.246094   -4.566527   KO_d0_r2:AAACAGCCACGTAATTx-2
    2   7.617473    2.449949    HT_d0_r1:AAACAGCCATAATGAGx-3
    3   -7.944949   6.633856    HT_d0_r2:AAACATGCACCTAATGx-4
    4   -6.944949   2.633856    HT_d0_r2:AAACATGCACCTAATGx-4
    5   -5.944949   3.633856    HT_d0_r2:AAACATGCACCTAATGx-4
    
    

    关于python - 添加列数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73837331/

    相关文章:

    python - 构建 XPATH 表达式以获取并单击按钮元素

    python - pandas数据框的选择性划分

    python - 将纯文本标题和图像导出到 Excel

    python - pandas.DataFrame.drop_duplicates(inplace=True) 抛出 'TypeError: unhashable type: ' dict''

    python - 如何在给定的数据框中划分列 'location'?

    python - 根据另一个字段中的选择显示/隐藏 django 管理表单字段

    python - 如何在 NumPy 中将矩阵中的每一行乘以其标量?

    python - 告诉 scipy.optimize.minimize 失败

    Python:检测套接字何时因任何原因断开连接?

    python - 当我使用 pandas statsmodels 时,出现断言错误