-
-
Couldn't load subscription status.
- Fork 19.2k
Closed
Labels
BugDtype ConversionsUnexpected or buggy dtype conversionsUnexpected or buggy dtype conversionsReshapingConcat, Merge/Join, Stack/Unstack, ExplodeConcat, Merge/Join, Stack/Unstack, Explode
Milestone
Description
Suppose that we want to create a dataframe from a dictionary.
import pandas as pd,numpy as np
#1) Form dataframe
ix=pd.date_range('1/1/2015',periods=5,freq='D')
df0=pd.DataFrame(np.random.normal(size=(len(ix),5)),index=ix)
#2) Split dataframe into 2 dictionaries, based on sign
d={'+':{},'-':{}}
for loc in df0.index:
d['+'][loc]=df0.loc[loc][df0.loc[loc]>=0]
d['-'][loc]=df0.loc[loc][df0.loc[loc]<0]
#3) Convert dictionary to dataframe
print pd.DataFrame.from_dict(d['+'],orient='index')This returns a dataframe of positive values, with NaN in place of the negative values. Now, it appears the exact same operation fails if we use "df.index.values" instead of "df.index".
d={'+':{},'-':{}}
for loc in df0.index.values: # NOTE .values!
d['+'][loc]=df0.loc[loc][df0.loc[loc]>=0]
d['-'][loc]=df0.loc[loc][df0.loc[loc]<0]
print pd.DataFrame.from_dict(d['+'],orient='index')Now the outcome is a dataframe with all None. I think the problem is some inconsistency between pandas' datetime and numpy's datetime formats.
Pandas version 0.16.1, Numpy version 1.9.2. Thanks.
Metadata
Metadata
Assignees
Labels
BugDtype ConversionsUnexpected or buggy dtype conversionsUnexpected or buggy dtype conversionsReshapingConcat, Merge/Join, Stack/Unstack, ExplodeConcat, Merge/Join, Stack/Unstack, Explode