【问题标题】:How to join/write two pandas dataframes to a single file如何将两个熊猫数据框加入/写入单个文件
【发布时间】:2020-03-29 18:17:43
【问题描述】:

我正在将 CSV 文件读取到 pandas 数据框以进行科学分析/处理。我创建了第二个“相同”数据框。我对第二个数据框进行分析/处理。我想将数据返回到一个 CSV 文件,其中两个数据框“并排”,以便可以将原始数据与处理后的数据进行比较。

从文件输入代码:

reader = pd.read_csv(Filename1, sep=none, engine='python')
df = pd.DataFrame(reader)
dg = pd.DataFrame(reader)

我在dg 上进行处理。现在,我想将dfdg(每个数据框由相同数量的列组成)写入一个CSV 文件,以便CSV 文件的每一行看起来像这样:

(df Col1), (df Col2), (df Col3), (dg Col1), (dg Col2), (dg Col3)

如何创建一个将dfdg '并排'连接在一起的新数据框?

期望使用以下语句将生成的数据帧写入第二个 CSV 文件 (Filename2)(假设 di 是连接在一起的两个数据帧)。

di.head(EndFile).to_csv(Filename2, sep='\t', index=False, header=False)

【问题讨论】:

  • df.add_prefix('df ').join(dg.add_prefix('dg '))?

标签: pandas dataframe


【解决方案1】:

你可以像这样使用pandas.DataFrame.merge()

di = pd.merge(df, dg, left_index=True, right_index=True, suffixes=('_df', '_dg'))

【讨论】:

  • 谢谢 - 如果两个数据框的列没有标题名称,我需要“后缀”限定符吗?
  • 我真的不知道,你怎么能制作一个没有列名的数据框。这是非常不寻常的。我希望您的数据框 dfdg 具有相同数量的列,并且这些列的名称相同。如果没有,请更新您的问题并提供两个数据框的行示例,例如。 G。 df.head()dg.head().
【解决方案2】:

您可以尝试简单的合并而不是保存到 csv。

import pandas as pd
dict1 = {'a':[2,3,4],'b':[4,5,6]}
dict2 = {'a':[7,5,6],'b':[6,8,10]}
first = pd.DataFrame(dict1)
second = pd.DataFrame(dict2)

first
    a   b
0   2   4
1   3   5
2   4   6

second
    a   b
0   7   6
1   5   8
2   6   10

first.merge(second, how='inner', left_index=True, right_index=True, suffixes=('_first','_second'))

        a_first b_first a_second b_second
0       2       4       7        6
1       3       5       5        8
2       4       6       6        10

combined_df = first.merge(second, how='inner', left_index=True, right_index=True, suffixes=('_first','_second'))

combined_df.to_csv(filename)

【讨论】:

  • 你也可以做 df.join(dg, lsuffix='_df', rsuffix='_dg')
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-14
  • 1970-01-01
  • 2019-05-02
  • 2016-12-25
  • 2019-01-07
相关资源
最近更新 更多