Python Forum
How does one combine 2 data sets ?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How does one combine 2 data sets ?
#1
In the below script I am creating 2 datasets (stats1, stats2). One in each for loop. Now I want to combine the two data sets. That is, adding the columns from stats2 after the last column in stats1. I don't know how to do that. If somebody could help that would be great. Note: I need to delete "level_1" in each data set.

import pandas as pd
from yahoo_fin import stock_info as si

ti = pd.read_csv('/Users/detlefschmitt/Desktop/TickerList.csv')
stock_list = ti["Ticker"].tolist()

stats1 = {}
stats2 = {}

for ticker in stock_list:
  data = si.get_stats(ticker)
  stats1[ticker] = data

for ticker in stock_list:
  data = si.get_stats_valuation(ticker)
  stats2[ticker] = data
  
combined = pd.concat(stats1)
combined = combined.reset_index()
del combined["level_1"]
combined.columns = ["Ticker", "Attribute", "Recent"]

df = pd.DataFrame(combined)
df2 = df.pivot(index='Ticker', columns='Attribute', values='Recent')

df2.to_csv(r'/Users/detlefschmitt/Desktop/stats.csv')
Reply
#2
Look at pandas concat function. Use axis=1 to concatenate columns. See docs
Reply
#3
Thanks for the hint. I was able to solve the problem using pandas join function.

import pandas as pd
from yahoo_fin import stock_info as si

ti = pd.read_csv('/Users/detlefschmitt/Desktop/TickerList.csv')
stock_list = ti["Ticker"].tolist()

stats1 = {}
stats2 = {}

for ticker in stock_list:
  data = si.get_stats(ticker)
  stats1[ticker] = data

for ticker in stock_list:
  data = si.get_stats_valuation(ticker)
  stats2[ticker] = data

combined1 = pd.concat(stats1)
combined1 = combined1.reset_index()
del combined1["level_1"]
combined1.columns = ["Ticker", "Attribute", "Recent"]

combined2 = pd.concat(stats2)
combined2 = combined2.reset_index()
del combined2["level_1"]
combined2.columns = ["Ticker", "Attribute", "Recent"]

df1 = pd.DataFrame(combined1)
df2 = pd.DataFrame(combined2)

df11 = df1.pivot(index='Ticker', columns='Attribute', values='Recent')
df22 = df2.pivot(index='Ticker', columns='Attribute', values='Recent')

df3 = df11.join(df22)

df3.to_csv(r'/Users/detlefschmitt/Desktop/stats.csv')
The screenshot in the attachment illustrates what I was trying to achieve. I had df11 and df22 and tried to join them to get df3.

Attached Files

Thumbnail(s)
   
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Peculiar pattern from printing of sets SahandJ 7 1,673 Dec-29-2021, 06:31 PM
Last Post: bowlofred
  Looping Through Large Data Sets JoeDainton123 10 4,382 Oct-18-2020, 02:58 PM
Last Post: buran
  comprehension for sets Skaperen 2 1,872 Aug-07-2020, 10:12 PM
Last Post: Skaperen
  Sort sets by item values Sergey 4 70,136 Apr-19-2019, 10:50 AM
Last Post: Sergey
  Problem with character sets Pedroski55 4 3,736 Mar-04-2019, 02:35 AM
Last Post: snippsat
  How to combine timeseries data under one column? python_newbie09 1 2,045 Oct-20-2018, 06:51 PM
Last Post: mlieqo
  merge 3 sql data sets to 1 librairy brecht83 0 2,115 Sep-26-2018, 10:13 PM
Last Post: brecht83
  Sets and Lists mp3909 2 2,420 Feb-21-2018, 11:54 AM
Last Post: mp3909

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020