【问题标题】:Create pd.Series from Stockdata从 Stockdata 创建 pd.Series
【发布时间】:2019-07-18 07:20:45
【问题描述】:

我正在尝试从具有日期列和三列股票值的数据创建一个 pd.Series。我得到的只是一个以日期和“NaN”为值的系列?

数据是这样的

        Datum       Eroeffnung  Tief        Hoch        Schluss
0       31.12.69    100.0000    100.0000    100.0000    100.0000
1       30.01.70    94.2489     94.2489     94.2489     94.2489
2       27.02.70    96.9790     96.9790     96.9790     96.9790
...
6478    11.07.19    2205.346    2205.346    2205.346    2205.346
6479    12.07.19    2212.645    2212.645    2212.645    2212.645
6480    15.07.19    2214.340    2214.340    2214.340    2214.340
6481    16.07.19    2208.088    2208.088    2208.088    2208.088
6482    17.07.19    2197.936    2197.936    2197.936    2197.936

当我执行以下操作时:

data = pd.read_csv('msci_world_kurse_vers6.csv')

d = data['Datum'].astype('datetime64')
idx = pd.DatetimeIndex(data['Datum'])
s = data['Schluss'].astype(float)
s1 = pd.Series(data['Schluss'] index=data['Datum'])
s2 = pd.Series(s, index=idx)
s3 = pd.Series(s, index=d)

我得到了 s1、s2、s3:

Datum
1969-12-31   NaN
1970-01-30   NaN
1970-02-27   NaN
1970-03-31   NaN
1970-04-30   NaN
1970-05-29   NaN
1970-06-30   NaN
1970-07-31   NaN
1970-08-31   NaN
1970-09-30   NaN
1970-10-30   NaN
1970-11-30   NaN

类似

plt.plot(data['Datum'], data['Schluss'])

运行良好。

知道我做错了什么吗?

【问题讨论】:

    标签: pandas series stock


    【解决方案1】:

    我想你想要DatetimeIndex,所以你可以在read_csv中使用参数index_colparse_dates

    data = pd.read_csv('msci_world_kurse_vers6.csv', index_col=['Datum'], parse_dates=['Datum'])
    

    在您的代码中获取缺失值,因为数据对齐,这意味着索引系列尝试与新索引匹配,如果索引不同,则获取缺失值。

    解决方案是将值转换为 numpy 数组以避免它:

    #pandas 0.24+
    s1 = pd.Series(data['Schluss'].to_numpy(), index=data['Datum'])
    s2 = pd.Series(s.to_numpy(), index=idx)
    s3 = pd.Series(s.to_numpy(), index=d)
    

    s1 = pd.Series(data['Schluss'].values, index=data['Datum'])
    s2 = pd.Series(s.values, index=idx)
    s3 = pd.Series(s.values, index=d)
    

    【讨论】:

    • 该死,这正是我一直在寻找几个小时的地方。谢谢
    猜你喜欢
    • 2019-07-02
    • 2018-11-12
    • 1970-01-01
    • 2022-10-12
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 2021-10-23
    相关资源
    最近更新 更多