首页 > 解决方案 > 如何加入 2 个熊猫数据框并添加相应数据框的表示列

问题描述

假设我有 2 个数据框

  1. 假新闻
  2. 真实新闻

它们都有相似的列,如标题、主题、文本、日期

现在我想将这两个数据框添加到一个中,并添加一个额外的列
Validity,其值将是1如果它是真实新闻,0如果它是假新闻

标签: pythonpandasdataframe

解决方案


假设您有 2 个以下源 DataFrame:

  1. real_df

              title         subject         text        date
    0  Real_title_1  Real_subject_1  Real_text_1  2020-03-01
    1  Real_title_2  Real_subject_2  Real_text_2  2020-03-03
    
  2. fake_df

              title         subject         text        date
    0  Fake_title_1  Fake_subject_1  Fake_text_1  2020-03-04
    1  Fake_title_2  Fake_subject_2  Fake_text_2  2020-03-06
    

要将它们与“原产地标签”连接起来,您可以使用:

df = pd.concat([real_df, fake_df], keys=[1, 0])

结果(现在)是:

            title         subject         text        date
1 0  Real_title_1  Real_subject_1  Real_text_1  2020-03-01
  1  Real_title_2  Real_subject_2  Real_text_2  2020-03-03
0 0  Fake_title_1  Fake_subject_1  Fake_text_1  2020-03-04
  1  Fake_title_2  Fake_subject_2  Fake_text_2  2020-03-06

其中原始标签位于多索引的顶层。

要将其转换为“常规”列并为其指定所需的名称,请运行:

df = df.reset_index(level=0).reset_index(drop=True).rename(columns={'level_0': 'Validity'})

现在结果如你所愿,即:

   Validity         title         subject         text        date
0         1  Real_title_1  Real_subject_1  Real_text_1  2020-03-01
1         1  Real_title_2  Real_subject_2  Real_text_2  2020-03-03
2         0  Fake_title_1  Fake_subject_1  Fake_text_1  2020-03-04
3         0  Fake_title_2  Fake_subject_2  Fake_text_2  2020-03-06

推荐阅读