Python 作为数据帧名称的名称列出
我想让一些股票符号的名称成为熊猫数据框的实际名称Python 作为数据帧名称的名称列出,python,pandas,Python,Pandas,我想让一些股票符号的名称成为熊猫数据框的实际名称 import pandas as pd import pandas_datareader.data as pdr choices = ['ROK', 'HWM', 'PYPL', 'V', 'KIM', 'FISV', 'REG', 'EMN', 'GS', 'TYL'] for c in choices: pdr.DataReader(c, data_source='yahoo', start=datetime(2000,1,1)
import pandas as pd
import pandas_datareader.data as pdr
choices = ['ROK', 'HWM', 'PYPL', 'V', 'KIM', 'FISV', 'REG', 'EMN', 'GS', 'TYL']
for c in choices:
pdr.DataReader(c, data_source='yahoo', start=datetime(2000,1,1),
end=datetime(2020,1,1)).to_csv(f'Data/{c}.csv')
f'{c}'['Price'] = pd.read_csv(f'Data/{c}.csv', index_col='Date')['Adj Close']
我得到了这个错误:
TypeError:“str”对象不支持项分配
有办法做到这一点吗?也许使用股票符号的名称作为数据帧的名称不是最好的约定
谢谢您不应该用字符串存储变量,因为它可能会变得非常混乱。若你们想保持你们的惯例,我建议把你们的数据帧存储为一个字典,以股票符号为键
choices = ['ROK', 'HWM', 'PYPL', 'V', 'KIM', 'FISV', 'REG', 'EMN', 'GS', 'TYL']
choices_dict = {}
for c in choices:
pdr.DataReader(c, data_source='yahoo', start=datetime(2000,1,1),
end=datetime(2020,1,1)).to_csv(f'Data/{c}.csv')
csv_pd = pd.read_csv(f'Data/{c}.csv', index_col='Date')['Adj Close']
choices_dict[c] = pd.DataFrame(csv_pd, columns=['Price'])
您可以将其作为字典放入数据结构中
import pandas as pd
import pandas_datareader.data as pdr
choices = ['ROK', 'HWM', 'PYPL', 'V', 'KIM', 'FISV', 'REG', 'EMN', 'GS', 'TYL']
dataframes = {}
for c in choices:
pdr.DataReader(c, data_source='yahoo', start=datetime(2000,1,1),
end=datetime(2020,1,1)).to_csv(f'Data/{c}.csv')
dataframes[c] = pd.read_csv(f'Data/{c}.csv', index_col='Date')['Adj Close']
因此,您将得到一个类似于下面的结构:
>>> print(dataframes)
{'ROK': <your_ROK_dataframe_here>,
'HWM': <your_HWM_dataframe_here>,
...
}
打印(数据帧)
{'ROK':,
“HWM”:,
...
}
然后,您可以使用
dataframes['XXXX']
访问特定的数据帧,其中XXXX是一个选项。f'{c}'['Price']应该是什么意思?f{c}是一个字符串,所以这就是您看到错误的方式