使用Pandas将一个数据框的列添加到另一个具有不同列名的数据框中

13 浏览
0 Comments

使用Pandas将一个数据框的列添加到另一个具有不同列名的数据框中

我有一个名为prices的数据框,包含两列:Timestamp和closing prices。内容如下:

Timestamp        Close
1/1/2017 0:00   966.6
1/1/2017 1:00   963.87
1/1/2017 2:00   963.97
1/1/2017 3:00   962.83

我还有另一个名为output的数据框,其内容如下:

created_at        count
6/7/2018 19:00      1
6/7/2018 20:00      2
6/7/2018 21:00      3
6/7/2018 22:00      2
6/7/2018 23:00      1

我想要做的是将price数据框中的closing price追加到上述output数据框中,以获得一个如下所示的数据框:

created_at        count       close
1/1/2017 0:00     5           966.6
1/1/2017 1:00     1           963.87
1/1/2017 2:00     1           963.97
1/1/2017 3:00     1           962.83

我知道可以合并这两个数据框,然后使用以下代码删除Timestamp列:

output.drop['Timestamp'], axis=1)

我还可以使用以下代码删除NaN值:

output.dropna()

但是我无法在不同的列上合并这两个文件。我该如何做到这一点?更新后的代码如下:

import pandas as pd
path1 = r'C:\Users\Ahmed Ismail Khalid\Desktop\Bullcrap Testing Delete Later\Bitcoin Prices Hourly Based.csv'
path2 = r'C:\Users\Ahmed Ismail Khalid\Desktop\Bullcrap Testing Delete Later\adam3us.csv'
path3 = r'C:\Users\Ahmed Ismail Khalid\Desktop\Bullcrap Testing Delete Later\ascending and final.csv'
df1 = pd.read_csv(path1)
df2 = pd.read_csv(path2)
df3 = pd.read_csv(path3)
output = pd.merge(df1, df2, how="inner", on="created_at") #column_name should be common in both dataframe. how represents type of intersection. In your case it will be inner(INNER JOIN)
df4 = output.created_at.value_counts().rename_axis('created_at').reset_index(name='adam3us_tweets')
df4 = df4.sort_values(by=['created_at'])
# output the dataframe df4
print(df4,'\n\n')
df4.to_csv('results.csv', encoding='utf-8',index=False)

任何帮助都将不胜感激。

谢谢。

0