Python 如何为列中的新值复制pd.Dataframe中的值
假设我有数据帧Python 如何为列中的新值复制pd.Dataframe中的值,python,pandas,Python,Pandas,假设我有数据帧 A B C id 0 1 2 3 1 1 2 3 4 1 给定了id的值列表,例如[1,2,3]如何获取 A B C id 0 1 2 3 1 1 2 3 4 1 2 1 2 3 2 3 2 3 4 2 4 1 2 3 3 5 2 3 4 3 以最方便有效的方式?尝试重复索引,然后重复id列表: id_list = [1,2,3] (df.loc[df.index.repeat(len(id_list))] .assign(id=np.re
A B C id
0 1 2 3 1
1 2 3 4 1
给定了id
的值列表,例如[1,2,3]
如何获取
A B C id
0 1 2 3 1
1 2 3 4 1
2 1 2 3 2
3 2 3 4 2
4 1 2 3 3
5 2 3 4 3
以最方便有效的方式?尝试重复索引,然后重复id列表:
id_list = [1,2,3]
(df.loc[df.index.repeat(len(id_list))]
.assign(id=np.repeat(id_list, len(df)))
)
输出:
A B C id
0 1 2 3 1
0 1 2 3 1
0 1 2 3 2
1 2 3 4 2
1 2 3 4 3
1 2 3 4 3
另一种技巧(仅用于学习目的,没有效率):
concat,然后将id
与list元素组合在一起
idx = [1,2,3]
y = pd.concat([df]*len(idx))
y.assign(id=y.groupby(y.index)['id'].transform(lambda x:x.mul(idx))).reset_index(drop=True)
A. B C 身份证件 0 1. 2. 3. 1. 1. 2. 3. 4. 1. 2. 1. 2. 3. 2. 3. 2. 3. 4. 2. 4. 1. 2. 3. 3. 5. 2. 3. 4. 3.