gpt4 book ai didi

python - 将数组列表作为列 append 到具有相同列索引的 Pandas 数据框

转载 作者:太空狗 更新时间:2023-10-30 00:55:22 26 4
gpt4 key购买 nike

我有一个数组列表(一维 numpy 数组)(a_) 和一个列表 (l_),并希望有一个以它们作为列的 DataFrame。它们看起来像这样:

a_: [array([381]), array([376]), array([402]), array([400])...]
l_: [1.5,2.34,4.22,...]

我可以这样做:

df_l = pd.DataFrame(l_)
df_a = pd.DataFrame(a_)
df = pd.concat([df_l, df_a], axis=1)

是否有一种更短的方法?我尝试使用 pd.append:

df_l = pd.DataFrame(l_)
df_l = df_l.append(a_)

但是,由于列索引均为 0,因此它会将 a_ 添加到数据框列的末尾,从而产生单列。有没有这样的:

l_ = l_.append(a_).reset(columns)

为 append 数组设置一个新的列索引?好吧,显然这是行不通的!

期望的输出是这样的:

  0       0
0 1.50 381
1 2.34 376
2 4.22 402

...

谢谢。

最佳答案

建议:

df_l = pd.DataFrame(l_) 
df_1['a_'] = pd.Series(a_list, index=df_1.index)

示例#1:

L = list(data)
A = list(data)
data_frame = pd.DataFrame(L)
data_frame['A'] = pd.Series(A, index=data_frame.index)

示例 #2 - 相同系列长度(创建系列并将索引设置为与现有数据框相同):

In [33]: L = list(item for item in range(10))

In [34]: A = list(item for item in range(10,20))

In [35]: data_frame = pd.DataFrame(L,columns=['L'])

In [36]: data_frame['A'] = pd.Series(A, index=data_frame.index)

In [37]: print data_frame

L A
0 0 10
1 1 11
2 2 12
3 3 13
4 4 14
5 5 15
6 6 16
7 7 17
8 8 18
9 9 19

示例 #3 - 不同系列长度(创建系列并让 pandas 处理索引匹配):

In [45]: not_same_length = list(item for item in range(50,55))

In [46]: data_frame['nsl'] = pd.Series(not_same_length)

In [47]: print data_frame

L A nsl
0 0 10 50
1 1 11 51
2 2 12 52
3 3 13 53
4 4 14 54
5 5 15 NaN
6 6 16 NaN
7 7 17 NaN
8 8 18 NaN
9 9 19 NaN

根据您的评论,您似乎想加入您的列表列表。我假设它们在列表结构中,因为 array() 不是 python 中的方法。为此,您需要执行以下操作:

In [63]: A = [[381],[376], [402], [400]]

In [64]: A = [inner_item for item in A for inner_item in item]

In [65]: print A

[381, 376, 402, 400]

然后使用新数组创建系列,并按照上述步骤添加到您的数据框中。

关于python - 将数组列表作为列 append 到具有相同列索引的 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29088646/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com