如何使用 python 将 "printed list" 更改为数据框
How to change "printed list" into dataframe with python
我想将我的“打印列表”转换为 dtaframe:
1st:我从文件夹中导入 tickers/symbols 的提升
将 yfinance 导入为 yf
with open("/Users/AB/OD/Earnings/tickers.txt") as fh:
tick1 = fh.read().split()
(这里是保存在 txt 文件中的代码示例:
'ABCL',
'ABST',
'ACM',
'ADAP',
'ADCT',
'ADV'
)
2nd:我需要获取所有这些代码的 marketCap,但是我不知道如何将其转换为一个大数据框:headers:'ticker'; 'marketCap'.
这是我可以获得的代码,但不确定如何进行:
import pandas as pd
from pandas_datareader import data as pdr
import yfinance as yf
test = tick1
for ticker in test:
try:
marketCap = pdr.get_quote_yahoo(ticker)['marketCap']
print(marketCap)
except:
pass
如果市值不可用,我们可以跳过它。我们不需要将它们放入数据框中。
- 在循环之前你可以创建列表。
- 您可以在内部循环中附加到此列表
- 在循环之后你可以将这个列表转换为 DataFrame
转换取决于您在 marketCap
中获得的数据类型 - pandas.DataFrame
、pandas.Series
、list
、dictionary
.
在您的代码中需要 pandas.concat(some_list)
import pandas as pd
from pandas_datareader import data as pdr
import yfinance as yf
test = ['ABCL', 'ABST', 'ACM', 'ADAP', 'ADCT', 'ADV']
# --- before loop ---
data = []
# --- loop ---
for ticker in test:
try:
marketCap = pdr.get_quote_yahoo(ticker)['marketCap']
print(marketCap)
data.append(marketCap)
except Exception as ex:
print('skip:', ticker, ex)
# --- after loop ---
serie = pd.concat(data)
df = pd.DataFrame(serie)
print(df)
结果:
marketCap
ABCL 1870047360
ABST 346576800
ACM 9633939456
ADAP 246278048
ADCT 641943744
ADV 1593755008
我想将我的“打印列表”转换为 dtaframe:
1st:我从文件夹中导入 tickers/symbols 的提升 将 yfinance 导入为 yf
with open("/Users/AB/OD/Earnings/tickers.txt") as fh:
tick1 = fh.read().split()
(这里是保存在 txt 文件中的代码示例: 'ABCL', 'ABST', 'ACM', 'ADAP', 'ADCT', 'ADV' )
2nd:我需要获取所有这些代码的 marketCap,但是我不知道如何将其转换为一个大数据框:headers:'ticker'; 'marketCap'.
这是我可以获得的代码,但不确定如何进行:
import pandas as pd
from pandas_datareader import data as pdr
import yfinance as yf
test = tick1
for ticker in test:
try:
marketCap = pdr.get_quote_yahoo(ticker)['marketCap']
print(marketCap)
except:
pass
如果市值不可用,我们可以跳过它。我们不需要将它们放入数据框中。
- 在循环之前你可以创建列表。
- 您可以在内部循环中附加到此列表
- 在循环之后你可以将这个列表转换为 DataFrame
转换取决于您在 marketCap
中获得的数据类型 - pandas.DataFrame
、pandas.Series
、list
、dictionary
.
在您的代码中需要 pandas.concat(some_list)
import pandas as pd
from pandas_datareader import data as pdr
import yfinance as yf
test = ['ABCL', 'ABST', 'ACM', 'ADAP', 'ADCT', 'ADV']
# --- before loop ---
data = []
# --- loop ---
for ticker in test:
try:
marketCap = pdr.get_quote_yahoo(ticker)['marketCap']
print(marketCap)
data.append(marketCap)
except Exception as ex:
print('skip:', ticker, ex)
# --- after loop ---
serie = pd.concat(data)
df = pd.DataFrame(serie)
print(df)
结果:
marketCap
ABCL 1870047360
ABST 346576800
ACM 9633939456
ADAP 246278048
ADCT 641943744
ADV 1593755008