Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions yfinance/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -739,7 +739,7 @@ def _get_earnings_dates_using_scrape(self, limit = 12, offset = 0) -> Optional[p
df = df.drop(["Symbol", "Company"], axis=1)

# Backwards compatibility
df.rename(columns={'Surprise (%)': 'Surprise(%)'}, inplace=True)
df = df.rename(columns={'Surprise (%)': 'Surprise(%)'})

df = df.dropna(subset="Earnings Date")

Expand Down Expand Up @@ -825,9 +825,9 @@ def _get_earnings_dates_using_screener(self, limit=12) -> Optional[pd.DataFrame]
df[columns_to_update] = df[columns_to_update].astype('float64').replace(0.0, np.nan)

# Format the dataframe
df.drop(['Event Start Date', 'Timezone short name'], axis=1, inplace=True)
df.set_index('Earnings Date', inplace=True)
df.rename(columns={'Surprise (%)': 'Surprise(%)'}, inplace=True) # Compatibility
df = df.drop(['Event Start Date', 'Timezone short name'], axis=1)
df = df.set_index('Earnings Date')
df = df.rename(columns={'Surprise (%)': 'Surprise(%)'}) # Compatibility

self._earnings_dates[limit] = df
return df
Expand Down
4 changes: 2 additions & 2 deletions yfinance/calendars.py
Original file line number Diff line number Diff line change
Expand Up @@ -282,9 +282,9 @@ def _cleanup_df(self, calendar_type: str, df: pd.DataFrame) -> pd.DataFrame:
df[nan_cols] = df[nan_cols].astype("float64").replace(0.0, np.nan)

# Format the dataframe
df.set_index(predef_cal["df_index"], inplace=True)
df = df.set_index(predef_cal["df_index"])
for rename_from, rename_to in predef_cal["renames"].items():
df.rename(columns={rename_from: rename_to}, inplace=True)
df = df.rename(columns={rename_from: rename_to})

for datetime_col in predef_cal["datetime_cols"]:
df[datetime_col] = pd.to_datetime(df[datetime_col])
Expand Down
4 changes: 2 additions & 2 deletions yfinance/multi.py
Original file line number Diff line number Diff line change
Expand Up @@ -218,11 +218,11 @@ def _download_impl(ctx, tickers, start=None, end=None, actions=False, threads=Tr
except Exception:
data = _pd.concat(ctx.dfs.values(), axis=1, sort=True,
keys=ctx.dfs.keys(), names=['Ticker', 'Price'])
data.rename(columns=ctx.isins, inplace=True)
data = data.rename(columns=ctx.isins)

if group_by == 'column' and isinstance(data.columns, _pd.MultiIndex):
data.columns = data.columns.swaplevel(0, 1)
data.sort_index(level=0, axis=1, inplace=True)
data = data.sort_index(level=0, axis=1)

if not multi_level_index and len(tickers) == 1:
data = data.droplevel(0 if group_by == 'ticker' else 1, axis=1).rename_axis(None, axis=1)
Expand Down
2 changes: 1 addition & 1 deletion yfinance/scrapers/analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ def _fetch_earnings_history(self, methodology) -> pd.DataFrame:
df = pd.DataFrame(rows)
if 'quarter' in df.columns:
df['quarter'] = pd.to_datetime(df['quarter'], format='%Y-%m-%d')
df.set_index('quarter', inplace=True)
df = df.set_index('quarter')

label = _eps_methodology_label(methodology, module_data)
if label is not None:
Expand Down
16 changes: 8 additions & 8 deletions yfinance/scrapers/holders.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ def _parse_institution_ownership(self, data):
df = pd.DataFrame(holders)
if not df.empty:
df["reportDate"] = pd.to_datetime(df["reportDate"], unit="s")
df.rename(columns={"reportDate": "Date Reported", "organization": "Holder", "position": "Shares", "value": "Value"}, inplace=True) # "pctHeld": "% Out"
df = df.rename(columns={"reportDate": "Date Reported", "organization": "Holder", "position": "Shares", "value": "Value"}) # "pctHeld": "% Out"
self._institutional = df

def _parse_fund_ownership(self, data):
Expand All @@ -128,7 +128,7 @@ def _parse_fund_ownership(self, data):
df = pd.DataFrame(holders)
if not df.empty:
df["reportDate"] = pd.to_datetime(df["reportDate"], unit="s")
df.rename(columns={"reportDate": "Date Reported", "organization": "Holder", "position": "Shares", "value": "Value"}, inplace=True)
df = df.rename(columns={"reportDate": "Date Reported", "organization": "Holder", "position": "Shares", "value": "Value"})
self._mutualfund = df

def _parse_major_direct_holders(self, data):
Expand All @@ -140,7 +140,7 @@ def _parse_major_direct_holders(self, data):
df = pd.DataFrame(holders)
if not df.empty:
df["reportDate"] = pd.to_datetime(df["reportDate"], unit="s")
df.rename(columns={"reportDate": "Date Reported", "organization": "Holder", "positionDirect": "Shares", "valueDirect": "Value"}, inplace=True)
df = df.rename(columns={"reportDate": "Date Reported", "organization": "Holder", "positionDirect": "Shares", "valueDirect": "Value"})
self._major_direct_holders = df

def _parse_major_holders_breakdown(self, data):
Expand All @@ -149,7 +149,7 @@ def _parse_major_holders_breakdown(self, data):
df = pd.DataFrame.from_dict(data, orient="index")
if not df.empty:
df.columns.name = "Breakdown"
df.rename(columns={df.columns[0]: 'Value'}, inplace=True)
df = df.rename(columns={df.columns[0]: 'Value'})
self._major = df

def _parse_insider_transactions(self, data):
Expand All @@ -161,7 +161,7 @@ def _parse_insider_transactions(self, data):
df = pd.DataFrame(holders)
if not df.empty:
df["startDate"] = pd.to_datetime(df["startDate"], unit="s")
df.rename(columns={
df = df.rename(columns={
"startDate": "Start Date",
"filerName": "Insider",
"filerRelation": "Position",
Expand All @@ -171,7 +171,7 @@ def _parse_insider_transactions(self, data):
"shares": "Shares",
"value": "Value",
"ownership": "Ownership" # ownership flag, direct or institutional
}, inplace=True)
})
self._insider_transactions = df

def _parse_insider_holders(self, data):
Expand All @@ -187,7 +187,7 @@ def _parse_insider_holders(self, data):
if "latestTransDate" in df:
df["latestTransDate"] = pd.to_datetime(df["latestTransDate"], unit="s")

df.rename(columns={
df = df.rename(columns={
"name": "Name",
"relation": "Position",
"url": "URL",
Expand All @@ -197,7 +197,7 @@ def _parse_insider_holders(self, data):
"positionDirect": "Shares Owned Directly",
"positionIndirectDate": "Position Indirect Date",
"positionIndirect": "Shares Owned Indirectly"
}, inplace=True)
})

df["Name"] = df["Name"].astype(str)
df["Position"] = df["Position"].astype(str)
Expand Down
4 changes: 2 additions & 2 deletions yfinance/scrapers/quote.py
Original file line number Diff line number Diff line change
Expand Up @@ -572,8 +572,8 @@ def upgrades_downgrades(self) -> pd.DataFrame:
if len(data) == 0:
raise YFDataException(f"No upgrade/downgrade history found for {self._symbol}")
df = pd.DataFrame(data)
df.rename(columns={"epochGradeDate": "GradeDate", 'firm': 'Firm', 'toGrade': 'ToGrade', 'fromGrade': 'FromGrade', 'action': 'Action'}, inplace=True)
df.set_index('GradeDate', inplace=True)
df = df.rename(columns={"epochGradeDate": "GradeDate", 'firm': 'Firm', 'toGrade': 'ToGrade', 'fromGrade': 'FromGrade', 'action': 'Action'})
df = df.set_index('GradeDate')
df.index = pd.to_datetime(df.index, unit='s')
self._upgrades_downgrades = df
except (KeyError, IndexError):
Expand Down
2 changes: 1 addition & 1 deletion yfinance/tickers.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ def download(self, period='1mo if start & end None', interval="1d",

if group_by == 'column':
data.columns = data.columns.swaplevel(0, 1)
data.sort_index(level=0, axis=1, inplace=True)
data = data.sort_index(level=0, axis=1)

return data

Expand Down
30 changes: 15 additions & 15 deletions yfinance/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -511,14 +511,14 @@ def auto_adjust(data):
df["Adj High"] = df["High"] * ratio
df["Adj Low"] = df["Low"] * ratio

df.drop(
df = df.drop(
["Open", "High", "Low", "Close"],
axis=1, inplace=True)
axis=1)

df.rename(columns={
df = df.rename(columns={
"Adj Open": "Open", "Adj High": "High",
"Adj Low": "Low", "Adj Close": "Close"
}, inplace=True)
})

return df[[c for c in col_order if c in df.columns]]

Expand All @@ -533,14 +533,14 @@ def back_adjust(data):
df["Adj High"] = df["High"] * ratio
df["Adj Low"] = df["Low"] * ratio

df.drop(
df = df.drop(
["Open", "High", "Low", "Adj Close"],
axis=1, inplace=True)
axis=1)

df.rename(columns={
df = df.rename(columns={
"Adj Open": "Open", "Adj High": "High",
"Adj Low": "Low"
}, inplace=True)
})

return df[[c for c in col_order if c in df.columns]]

Expand All @@ -565,7 +565,7 @@ def parse_quotes(data):
"Adj Close": adjclose,
"Volume": volumes})
quotes.index = _pd.to_datetime(timestamps, unit="s")
quotes.sort_index(inplace=True)
quotes = quotes.sort_index()
for c in ['Open', 'High', 'Low', 'Close', 'Adj Close']:
if not is_float_dtype(quotes[c].dtype):
# Only seen when Adj Close contains Infinity.
Expand All @@ -582,9 +582,9 @@ def parse_actions(data):
if "dividends" in data["events"] and len(data["events"]['dividends']) > 0:
dividends = _pd.DataFrame(
data=list(data["events"]["dividends"].values()))
dividends.set_index("date", inplace=True)
dividends = dividends.set_index("date")
dividends.index = _pd.to_datetime(dividends.index, unit="s")
dividends.sort_index(inplace=True)
dividends = dividends.sort_index()
if 'currency' in dividends.columns and (dividends['currency'] == '').all():
# Currency column useless, drop it.
dividends = dividends.drop('currency', axis=1)
Expand All @@ -593,17 +593,17 @@ def parse_actions(data):
if "capitalGains" in data["events"] and len(data["events"]['capitalGains']) > 0:
capital_gains = _pd.DataFrame(
data=list(data["events"]["capitalGains"].values()))
capital_gains.set_index("date", inplace=True)
capital_gains = capital_gains.set_index("date")
capital_gains.index = _pd.to_datetime(capital_gains.index, unit="s")
capital_gains.sort_index(inplace=True)
capital_gains = capital_gains.sort_index()
capital_gains.columns = ["Capital Gains"]

if "splits" in data["events"] and len(data["events"]['splits']) > 0:
splits = _pd.DataFrame(
data=list(data["events"]["splits"].values()))
splits.set_index("date", inplace=True)
splits = splits.set_index("date")
splits.index = _pd.to_datetime(splits.index, unit="s")
splits.sort_index(inplace=True)
splits = splits.sort_index()
splits["Stock Splits"] = splits["numerator"] / splits["denominator"]
splits = splits[["Stock Splits"]]

Expand Down