Python 带有连接列的数据帧
我有一个熊猫数据框,看起来像下面的代码。我需要添加一个动态列,将序列中的每个值连接到给定行之前。循环听起来像是逻辑解决方案,但在非常大的数据帧(1M+行)上效率会非常低Python 带有连接列的数据帧,python,pandas,Python,Pandas,我有一个熊猫数据框,看起来像下面的代码。我需要添加一个动态列,将序列中的每个值连接到给定行之前。循环听起来像是逻辑解决方案,但在非常大的数据帧(1M+行)上效率会非常低 user_id=[1,1,1,2,2,3,3,3,3] 变量=[“A”、“B”、“C”、“D”、“A”、“B”、“C”、“A”、“B”、“C”、“D”、“E”] 序列=[0,1,2,3,0,1,2,0,1,2,3,4] df=pd.DataFrame(列表(zip(ID,变量,序列)),列=['User_ID','Variabl
user_id=[1,1,1,2,2,3,3,3,3]
变量=[“A”、“B”、“C”、“D”、“A”、“B”、“C”、“A”、“B”、“C”、“D”、“E”]
序列=[0,1,2,3,0,1,2,0,1,2,3,4]
df=pd.DataFrame(列表(zip(ID,变量,序列)),列=['User_ID','Variables','Seq']
#需要动态添加列
df['dynamic_column']=[“A”、“AB”、“ABC”、“ABCD”、“A”、“AB”、“ABC”、“A”、“AB”、“ABC”、“ABCD”、“ABCDE”]
我需要能够基于用户id和序列号高效地创建动态列。我使用了pandas shift函数,结果就是必须创建一个循环。正在寻找一些简单有效的方法来创建动态连接列。您的问题有点含糊不清,但这样做是否可行
df['DynamicColumn'] = df['user_id'] + df['sequencenumber']
这是
cumsum
:
df['dynamic_column'] = df.groupby('User_ID').Variables.apply(lambda x: x.cumsum())
输出:
0 A
1 AB
2 ABC
3 ABCD
4 A
5 AB
6 ABC
7 A
8 AB
9 ABC
10 ABCD
11 ABCDE
Name: Variables, dtype: object
你所说的“给定的Sequence”是什么?我怀疑这是他在寻找的。上面的答案让我得到了我所需要的。谢谢你,这是完美和超快速的。