我正在尝试在python中创建日期的数据框。我使用日期作为索引:
List(Of Integer())
然后我创建一个空数据框:
aDates.head(5)
Out[114]:
0 2009-12-31
1 2010-01-01
2 2010-01-04
3 2010-01-05
4 2010-01-06
Name: Date, dtype: datetime64[ns]
然后我创建了一个函数,它创建了一个我想要添加为列的pandas系列日期,但是为了让您可以轻松复制,我们假设我们添加了与索引相同的系列:
dfAll_dates = pd.DataFrame(index = aDates)
但结果是:
dfAll_dates['my_added_column'] = aDates
我试图在aDates上使用.totimestamp将我的日期转换为时间戳,但是这并没有解决问题(我有一个"绑定方法Series.to_timestamp为0"),因为没有定义中的类型我不明白为什么我还要转换。
你能帮忙吗?
答案 0 :(得分:3)
问题是indexes
和Series
中有DataFrame
个不同,因此数据没有对齐并得到NaN
s:
一种可能的解决方案是将aDates
的值转换为values
的numpy array
:
dfAll_dates = pd.DataFrame(index = aDates)
dfAll_dates['my_added_column'] = aDates.values
print (dfAll_dates)
my_added_column
Date
2009-12-31 2009-12-31
2010-01-01 2010-01-01
2010-01-04 2010-01-04
2010-01-05 2010-01-05
2010-01-06 2010-01-06
或者使用to_frame
+ set_index
,也需要重命名列:
d = {'Date':'my_added_column'}
df = aDates.to_frame().set_index('Date', drop=False).rename(columns=d)
print (df)
my_added_column
Date
2009-12-31 2009-12-31
2010-01-01 2010-01-01
2010-01-04 2010-01-04
2010-01-05 2010-01-05
2010-01-06 2010-01-06
或者将DataFrame
构造函数与dict
一起用于新列:
dfAll_dates = pd.DataFrame({'my_added_column':aDates.values}, index = aDates)
print (dfAll_dates)
my_added_column
Date
2009-12-31 2009-12-31
2010-01-01 2010-01-01
2010-01-04 2010-01-04
2010-01-05 2010-01-05
2010-01-06 2010-01-06
答案 1 :(得分:1)
另一种方法是使用#if STATE_DEVELOPMENT
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
#else
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
方法创建一个系列,其中值采用索引中的内容并且索引保持不变。
pd.Index.to_series
负责索引对齐。但是,你甚至不需要这样做。正如@jezrael所示,如果我们消除传递一个系列对象并且只传递一个数组,dfAll_dates['my_added_column'] = dfAll_dates.index.to_series()
不会尝试对齐那些不存在的索引。我们可以直接引用索引
pandas
在任何一种情况下
dfAll_dates['my_added_column'] = dfAll_dates.index
在这两种情况下,我们不再需要跟踪dfAll_dates
my_added_column
2009-12-31 2009-12-31
2010-01-01 2010-01-01
2010-01-04 2010-01-04
2010-01-05 2010-01-05
2010-01-06 2010-01-06
,只需要引用aDates
中已存在的对象。