当我下载日期并转换为 DataFrame 时,我丢失了第一列数据
When I download date and convert into DataFrame I lose the first column with data
我用quandl下载了一个股票行情。我有一份公司名称列表,我下载了所有信息。之后,我将其转换为数据框。当我只为一家公司做这件事时,一切都很好,但是当我尝试同时为所有公司做这件事时,就出了问题。带有数据的第一列转换为索引,其值从 0 到 3 insted of data
我的代码如下所示:
import quandl
import pandas as pd
names_of_company = [11BIT, ABCDATA, ALCHEMIA]
for names in names_of_company:
x = quandl.get('WSE/%s' %names, start_date='2018-11-29',
end_date='2018-11-29',
paginate=True)
x['company'] = names
results = results.append(x).reset_index(drop=True)
实际结果如下所示:
Index Open High Low Close %Change Volume # of Trades Turnover (1000) company
0 204.5 208.5 204.5 206.0 0.73 3461.0 105.0 717.31 11BIT
1 205.0 215.0 202.5 214.0 3.88 10812.0 392.0 2254.83 ABCDATA
2 215.0 215.0 203.5 213.0 -0.47 12651.0 401.0 2656.15 ALCHEMIA
但我预计:
Data Open High Low Close %Change Volume # of Trades Turnover (1000) company
2018-11-29 204.5 208.5 204.5 206.0 0.73 3461.0 105.0 717.31 11BIT
2018-11-29 205.0 215.0 202.5 214.0 3.88 10812.0 392.0 2254.83 ABCDATA
2018-11-29 215.0 215.0 203.5 213.0 -0.47 12651.0 401.0 2656.15 ALCHEMIA
如您所见,数据存在问题,因为它无法转换为正确的方式。但正如我所说,如果我只为一家公司做这件事,它就会奏效。下面是代码:
x = quandl.get('WSE/11BIT', start_date='2019-01-01', end_date='2019-01-03')
df = pd.DataFrame(x)
如有任何帮助,我将不胜感激!谢谢大家
当您将其存储到数据框时,日期就是您的索引。你丢失它是因为当你使用 .reset_index()
时,你覆盖了旧索引(日期),而不是将日期添加为列,你告诉它用 .reset_index(drop=True)
[=16 删除它=]
所以我会追加,但是一旦填充了整个结果数据框,我就会重置索引,但不会通过执行 results = results.reset_index(drop=False)
或 results = results.reset_index()
来删除,因为默认是假的。
import quandl
import pandas as pd
names_of_company = ['11BIT', 'ABCDATA', 'ALCHEMIA']
results = pd.DataFrame()
for names in names_of_company:
x = quandl.get('WSE/%s' %names, start_date='2018-11-29',
end_date='2018-11-29',
paginate=True)
x['company'] = names
results = results.append(x)
results = results.reset_index(drop=False)
输出:
print (results)
Date Open High ... # of Trades Turnover (1000) company
0 2018-11-29 269.50 271.00 ... 280.0 1822.02 11BIT
1 2018-11-29 0.82 0.92 ... 309.0 1027.14 ABCDATA
2 2018-11-29 4.55 4.55 ... 1.0 0.11 ALCHEMIA
[3 rows x 10 columns]
我用quandl下载了一个股票行情。我有一份公司名称列表,我下载了所有信息。之后,我将其转换为数据框。当我只为一家公司做这件事时,一切都很好,但是当我尝试同时为所有公司做这件事时,就出了问题。带有数据的第一列转换为索引,其值从 0 到 3 insted of data
我的代码如下所示:
import quandl
import pandas as pd
names_of_company = [11BIT, ABCDATA, ALCHEMIA]
for names in names_of_company:
x = quandl.get('WSE/%s' %names, start_date='2018-11-29',
end_date='2018-11-29',
paginate=True)
x['company'] = names
results = results.append(x).reset_index(drop=True)
实际结果如下所示:
Index Open High Low Close %Change Volume # of Trades Turnover (1000) company
0 204.5 208.5 204.5 206.0 0.73 3461.0 105.0 717.31 11BIT
1 205.0 215.0 202.5 214.0 3.88 10812.0 392.0 2254.83 ABCDATA
2 215.0 215.0 203.5 213.0 -0.47 12651.0 401.0 2656.15 ALCHEMIA
但我预计:
Data Open High Low Close %Change Volume # of Trades Turnover (1000) company
2018-11-29 204.5 208.5 204.5 206.0 0.73 3461.0 105.0 717.31 11BIT
2018-11-29 205.0 215.0 202.5 214.0 3.88 10812.0 392.0 2254.83 ABCDATA
2018-11-29 215.0 215.0 203.5 213.0 -0.47 12651.0 401.0 2656.15 ALCHEMIA
如您所见,数据存在问题,因为它无法转换为正确的方式。但正如我所说,如果我只为一家公司做这件事,它就会奏效。下面是代码:
x = quandl.get('WSE/11BIT', start_date='2019-01-01', end_date='2019-01-03')
df = pd.DataFrame(x)
如有任何帮助,我将不胜感激!谢谢大家
当您将其存储到数据框时,日期就是您的索引。你丢失它是因为当你使用 .reset_index()
时,你覆盖了旧索引(日期),而不是将日期添加为列,你告诉它用 .reset_index(drop=True)
[=16 删除它=]
所以我会追加,但是一旦填充了整个结果数据框,我就会重置索引,但不会通过执行 results = results.reset_index(drop=False)
或 results = results.reset_index()
来删除,因为默认是假的。
import quandl
import pandas as pd
names_of_company = ['11BIT', 'ABCDATA', 'ALCHEMIA']
results = pd.DataFrame()
for names in names_of_company:
x = quandl.get('WSE/%s' %names, start_date='2018-11-29',
end_date='2018-11-29',
paginate=True)
x['company'] = names
results = results.append(x)
results = results.reset_index(drop=False)
输出:
print (results)
Date Open High ... # of Trades Turnover (1000) company
0 2018-11-29 269.50 271.00 ... 280.0 1822.02 11BIT
1 2018-11-29 0.82 0.92 ... 309.0 1027.14 ABCDATA
2 2018-11-29 4.55 4.55 ... 1.0 0.11 ALCHEMIA
[3 rows x 10 columns]