gtn*_*nyt 16 python nan dataframe pandas
我正在尝试在pandas DataFrame中生成一个新列,该列等于另一个pandas DataFrame中的值.当我尝试创建新列时,我只获取新列值的NaN.
首先我使用API调用来获取一些数据,'mydata'DataFrame是按日期索引的一列数据
mydata = Quandl.get(["YAHOO/INDEX_MXX.4"],
trim_start="2001-04-01", trim_end="2014-03-31",
collapse="monthly")
Run Code Online (Sandbox Code Playgroud)
我使用以下代码从CSV获取的下一个DataFrame,它包含许多列数据,其行数与'mydata'相同
DWDATA = pandas.DataFrame.from_csv("filename",
header=0,
sep=',',
index_col=0,
parse_dates=True,
infer_datetime_format=True)
Run Code Online (Sandbox Code Playgroud)
然后我尝试生成这样的新列:
DWDATA['MXX'] = mydata.iloc[:,0]
Run Code Online (Sandbox Code Playgroud)
再一次,我只是得到NaN值.有人可以帮助我理解为什么这样做以及如何解决?从我所看到的内容看起来我的索引可能有问题.索引是每个DataFrame中的日期,但"mydata"具有月末日期,而"DWDATA"具有月初日期.
gtn*_*nyt 25
因为索引不完全相等,所以会产生NaN.必须更改其中一个或两个索引才能匹配.例:
mydata = mydata.set_index(DWDATA.index)
Run Code Online (Sandbox Code Playgroud)
以上内容将更改'mydata'DataFrame的索引以匹配'DWDATA'DataFrame的索引.
由于两个DataFrame的行数完全相同,您还可以将'mydata'的值传递给新的'DWDATA'列:
DWDATA['MXX'] = mydata.iloc[:,0].values
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14981 次 |
| 最近记录: |