【问题标题】:Updating Values from another column Dataframe to another Dataframe将值从另一列数据框更新到另一个数据框
【发布时间】:2018-08-29 21:41:29
【问题描述】:

所以我已经尝试了我所知道的一切来让它工作,这似乎不仅仅是令人沮丧的。

问题来了:

    Age  Complete Location Sample Sample Type Tumor  
0  None      True     None   None        None  None   
1  None      True     None   None        None  None   
2  None      True     None   None        None  None   
3  None      True     None   None        None  None   
4  None      True     None   None        None  None   
5  None      True     None   None        None  None   
6  None      True     None   None        None  None   
7  None      True     None   None        None  None   
8  None      True     None   None        None  None   
9  None      True     None   None        None  None 

这是我用 None 类型对象填充的空数据框。

以下是我从 CSV 读取并按样本类型分组的数据

   Age  Complete Location Sample Sample Type      Tumor  
0   43      True     LUNG      1       Blood     Benign   
2   12      True     LUNG      3       Blood     Benign   
4   32      True     LUNG      5       Blood  Malignant   
6   13      True     LUNG      7       Blood  Malignant   
7   53      True    HEART      8       Blood  Malignant   
1   23      True     LUNG      2        FFPE     Benign   
3   54      True     LUNG      4        FFPE     Benign   
5   53      True     LUNG      6        FFPE  Malignant   
8  123      True    HEART      9        FFPE     Benign   
9   43      True    HEART     10        FFPE     Benign

我希望完成的是用第二个数据帧中的值以一种优雅的方式更新第一个数据帧的值,以便数据帧一个的输出看起来像。

   Age  Complete Location Sample Sample Type      Tumor  
0   43      True     LUNG      1       Blood     Benign   
2   12      True     LUNG      3       Blood     Benign   
4   32      True     LUNG      5       Blood  Malignant   
6   13      True     LUNG      7       Blood  Malignant   
7   53      True    HEART      8       Blood  Malignant   
1   23      True     LUNG      2        FFPE     Benign   
3   54      True     LUNG      4        FFPE     Benign   
5   53      True     LUNG      6        FFPE  Malignant   
8  123      True    HEART      9        FFPE     Benign   
9   43      True    HEART     10        FFPE     Benign

我尝试过的事情并没有让我得到想要的结果

删除列然后将它们重新附加到数据框 1 中,这给了我没有被证明有用的非分组值

使用

pd.concat([dataframe 1, data frame 2], axis=1)

它返回了非组对象类型

   Age  Complete Location Sample Sample Type      Tumor  \
0   43      True     LUNG      1       Blood     Benign   
1   23      True     LUNG      2        FFPE     Benign   
2   12      True     LUNG      3       Blood     Benign   
3   54      True     LUNG      4        FFPE     Benign   
4   32      True     LUNG      5       Blood  Malignant   
5   53      True     LUNG      6        FFPE  Malignant   
6   13      True     LUNG      7       Blood  Malignant   
7   53      True    HEART      8       Blood  Malignant   
8  123      True    HEART      9        FFPE     Benign   
9   43      True    HEART     10        FFPE     Benign 

我也做了一个 .join,但它未能将 None 与数据框 2 中的对象值进行比较以进行设置?

我能做的最好的工作是遍历列和行并逐个更新每个单元格。

有人有什么想法吗?

【问题讨论】:

  • 你已经有了你想要的dataframe,所以只需使用df1 = df2.copy()

标签: python-3.x pandas


【解决方案1】:

我认为您可以迭代所有列并一一更新。 所以你有你的原始数据帧 df_1 和从 csv df_csv 读入的数据帧。

    for col in df_1.columns.tolist():
         df_1[col] = df_csv[col]

这样,您可以将 df_1 中的所有列替换为 df_csv 中的值。

【讨论】:

    【解决方案2】:

    您不必更新您的第一个数据框,因为您的第二个数据框已经看起来像您想要的输出。

    【讨论】:

      猜你喜欢
      • 2019-10-14
      • 1970-01-01
      • 2021-06-19
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      • 2021-04-10
      • 2017-11-11
      • 2019-07-26
      相关资源
      最近更新 更多