将列表列表合并到数据框熊猫中
Posted
技术标签:
【中文标题】将列表列表合并到数据框熊猫中【英文标题】:Merging list of list into a dataframe pandas 【发布时间】:2018-11-18 04:42:02 【问题描述】:我正在尝试将包含日期索引的列表列表作为每个列表合并到轴 = 1 上的单个数据帧中。 请在下面找到代码:
d=[]
for i in range(0,Alpha.shape[0]-1):
d.append(pd.date_range(start=Alpha.iloc[i]['Month_year'], end=Alpha.iloc[i+1]['Month_year']-pd.DateOffset(days=1), freq='D'))
上面的代码创建了一系列日期索引,如下所示:
[DatetimeIndex(['2014-04-01', '2014-04-02', '2014-04-03', '2014-04-04',
'2014-04-05', '2014-04-06', '2014-04-07', '2014-04-08',
'2014-04-09', '2014-04-10', '2014-04-11', '2014-04-12',
'2014-04-13', '2014-04-14', '2014-04-15', '2014-04-16',
'2014-04-17', '2014-04-18', '2014-04-19', '2014-04-20',
'2014-04-21', '2014-04-22', '2014-04-23', '2014-04-24',
'2014-04-25', '2014-04-26', '2014-04-27', '2014-04-28',
'2014-04-29', '2014-04-30'],
dtype='datetime64[ns]', freq='D'),
DatetimeIndex(['2014-05-01', '2014-05-02', '2014-05-03', '2014-05-04',
'2014-05-05', '2014-05-06', '2014-05-07', '2014-05-08',
'2014-05-09', '2014-05-10', '2014-05-11', '2014-05-12',
'2014-05-13', '2014-05-14', '2014-05-15', '2014-05-16',
'2014-05-17', '2014-05-18', '2014-05-19', '2014-05-20',
'2014-05-21', '2014-05-22', '2014-05-23', '2014-05-24',
'2014-05-25', '2014-05-26', '2014-05-27', '2014-05-28',
'2014-05-29', '2014-05-30', '2014-05-31'],....
我想要的是将列表“d”合并到一个数据框中。当我尝试以下方法时,
df=pd.DataFrame()
for i in range(0,len(d)):
for j in range(0,len(d[i])):
df.append(d[i][j])
我收到以下错误,
TypeError: cannot concatenate object of type "<class 'pandas._libs.tslib.Timestamp'>"; only pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid
您能帮我解决这个问题吗? 我希望所有日期都以列方式显示。
提前谢谢你
【问题讨论】:
可以添加DataFrame的示例数据吗? 是的@jezrael 我可以将示例数据添加到数据框 df.append([1,2,3]) 谢谢,还需要来自merged list
s 的新数据框吗?还是列?
一个新的数据框说 df.. 我希望日期值在列中。假设新数据帧 df 的第一个索引是“2014-04-01”,索引 2 是“2014-04-02”等等...
【参考方案1】:
我认为需要numpy.concatenate
:
df = pd.DataFrame(index=np.concatenate(d))
【讨论】:
哇。感谢您的快速回复。我也使用以下代码得到了相同的结果: for i in range(0,len(d)): for j in range(0,len(d[i])): df=df.append([d[i ][j]]) 刚刚添加了方括号以上是关于将列表列表合并到数据框熊猫中的主要内容,如果未能解决你的问题,请参考以下文章