将列表列表合并到数据框熊猫中

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 lists 的新数据框吗?还是列? 一个新的数据框说 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]]) 刚刚添加了方括号

以上是关于将列表列表合并到数据框熊猫中的主要内容,如果未能解决你的问题,请参考以下文章

每次合并具有不同列名的熊猫数据框列表

如何与熊猫数据框中的键和键列表合并

熊猫合并用空值填充新数据框

无法将新数据合并到列表的每个数据框元素

如何将列表数组合并到单列中并使其适合现有的数据框?

将数据框列表合并到一个数据框中