Python 输入类型列表?
熊猫中的列是否可以是np.array类型?或者python列表等等? 我在试着Python 输入类型列表?,python,pandas,Python,Pandas,熊猫中的列是否可以是np.array类型?或者python列表等等? 我在试着 a array_col 0 100 [1,2,8,0] 1 5 [1,3 4,8] 2 3 [1,2 4,8] 如果相关的话,所有列的长度都是相同的。 我所追求的功能是将所有数组列初始化为[0,0,…0],然后根据行和前一个数组(例如,在第n行上,将所有数组乘以n,并使数组列[n]=0) 另一种方法是为每个索引创建
a array_col
0 100 [1,2,8,0]
1 5 [1,3 4,8]
2 3 [1,2 4,8]
如果相关的话,所有列的长度都是相同的。
我所追求的功能是将所有数组列初始化为[0,0,…0],然后根据行和前一个数组(例如,在第n行上,将所有数组乘以n,并使数组列[n]=0)另一种方法是为每个索引创建一个新列(即在我的例子中为30个新列,并使操作更慢)。
想法?
编辑:
我想要这样的东西:
但两者都有
df['hist'] = [1,2,3]
及
给出了错误
ValueError: Length of values does not match length of index
您的示例可以这样解决:
df['hist'] = [[1, 2, 3] for _ in range(df.size)]
df
# a hist
#0 100 [1, 2, 3]
#1 5 [1, 2, 3]
#2 3 [1, 2, 3]
或:
要获得所需的输出,请指定嵌套列表:
df['hist'] = [[1,2,8,0],[1,3,4,8],[1,2,4,8]]
df
# a hist
#0 100 [1, 2, 8, 0]
#1 5 [1, 3, 4, 8]
#2 3 [1, 2, 4, 8]
可以检查
pd.DataFrame({'a':[100,5,3],'array_col':[1,2,8,0],[1,3,4,8],[1,2,4,8]})
RafaelC这是可行的,在创建df之后我如何使其生效?(在我的例子中是30个新列,并且使操作速度慢得多)。
你确定吗?我认为即使是30列int
类型也比一系列列表更容易/更快操作。不要在熊猫系列中使用list
,除非你已经证明它更有效。
df['hist'] = [[1, 2, 3] for _ in range(df.size)]
df
# a hist
#0 100 [1, 2, 3]
#1 5 [1, 2, 3]
#2 3 [1, 2, 3]
df['hist'] = [np.zeros(3) for _ in range(df.size)]
df
# a hist
#0 100 [0.0, 0.0, 0.0]
#1 5 [0.0, 0.0, 0.0]
#2 3 [0.0, 0.0, 0.0]
df['hist'] = [[1,2,8,0],[1,3,4,8],[1,2,4,8]]
df
# a hist
#0 100 [1, 2, 8, 0]
#1 5 [1, 3, 4, 8]
#2 3 [1, 2, 4, 8]