将 NaN 放入 pandas python
drop NaN in pandas python
无法弄清楚为什么 .dropnan()
不删除具有 NaN 值的单元格?
求助,我已经阅读了 pandas 文档,不知道我做错了什么????
import pandas as pd
import quandl
import pandas as pd
df = quandl.get("GOOG/NYSE_SPY")
df2 = quandl.get("YAHOO/AAPL")
date = pd.date_range('2010-01-01', periods = 365)
df3 = pd.DataFrame(index = date)
df3 = df3.join(df['Open'], how = 'inner')
df3.rename(columns = {'Open': 'SPY'}, inplace = True)
df3 = df3.join(df2['Open'], how = 'inner')
df3.rename(columns = {'Open': 'AAPL'}, inplace = True)
df3['Spread'] = df3['SPY'] / df3['AAPL']
df3 = df3 / df3.ix[0]
df3.dropna(how = 'any')
df3.plot()
print(df3)
将df3.dropna(how = 'any')
更改为df3 = df3.dropna(how = 'any')
我试图用一个简单的 csv 文件来复制您的问题:
In [6]: df
Out[6]:
a b
0 1.0 3.0
1 2.0 NaN
2 NaN 6.0
3 5.0 3.0
df.dropna(how='any') 和 df1 = df.dropna(how='any') 都有效。即使只是 df.dropna() 也可以。我想知道你的问题是不是因为你在上一行进行了除法:
df3 = df3 / df3.ix[0]
df3.dropna(how = 'any')
例如,如果我除以 df.ix[1],因为其中一个元素是 NaN,它会将结果中一列的所有元素转换为 NaN,然后如果我使用dropna,它将删除所有行:
In [17]: df.ix[1]
Out[17]:
a 2.0
b NaN
Name: 1, dtype: float64
In [18]: df2 = df / df.ix[1]
In [19]: df2
Out[19]:
a b
0 0.5 NaN
1 1.0 NaN
2 NaN NaN
3 2.5 NaN
In [20]: df2.dropna()
Out[20]:
Empty DataFrame
Columns: [a, b]
Index: []
无法弄清楚为什么 .dropnan()
不删除具有 NaN 值的单元格?
求助,我已经阅读了 pandas 文档,不知道我做错了什么????
import pandas as pd
import quandl
import pandas as pd
df = quandl.get("GOOG/NYSE_SPY")
df2 = quandl.get("YAHOO/AAPL")
date = pd.date_range('2010-01-01', periods = 365)
df3 = pd.DataFrame(index = date)
df3 = df3.join(df['Open'], how = 'inner')
df3.rename(columns = {'Open': 'SPY'}, inplace = True)
df3 = df3.join(df2['Open'], how = 'inner')
df3.rename(columns = {'Open': 'AAPL'}, inplace = True)
df3['Spread'] = df3['SPY'] / df3['AAPL']
df3 = df3 / df3.ix[0]
df3.dropna(how = 'any')
df3.plot()
print(df3)
将df3.dropna(how = 'any')
更改为df3 = df3.dropna(how = 'any')
我试图用一个简单的 csv 文件来复制您的问题:
In [6]: df
Out[6]:
a b
0 1.0 3.0
1 2.0 NaN
2 NaN 6.0
3 5.0 3.0
df.dropna(how='any') 和 df1 = df.dropna(how='any') 都有效。即使只是 df.dropna() 也可以。我想知道你的问题是不是因为你在上一行进行了除法:
df3 = df3 / df3.ix[0]
df3.dropna(how = 'any')
例如,如果我除以 df.ix[1],因为其中一个元素是 NaN,它会将结果中一列的所有元素转换为 NaN,然后如果我使用dropna,它将删除所有行:
In [17]: df.ix[1]
Out[17]:
a 2.0
b NaN
Name: 1, dtype: float64
In [18]: df2 = df / df.ix[1]
In [19]: df2
Out[19]:
a b
0 0.5 NaN
1 1.0 NaN
2 NaN NaN
3 2.5 NaN
In [20]: df2.dropna()
Out[20]:
Empty DataFrame
Columns: [a, b]
Index: []