2024-06-02 05:38:46 发布
网友
我有一个数据帧:
df = pd.DataFrame({'B':[2,1,2],'C':['a','b','a']}) B C 0 2 'a' 1 1 'b' 2 2 'a'
我想在任何出现的'b'上面插入一行,这是该行的副本,但是'b'更改为'c',因此我以以下方式结束:
我一辈子都不知道该怎么做。在
在NumPy级别工作,这里有一个向量化方法-
arr = df.values idx = np.flatnonzero(df.C=='b') newvals = arr[idx] newvals[:,df.columns.get_loc("C")] = 'c' out = np.insert(arr,idx+1,newvals,axis=0) df_index = np.insert(np.arange(arr.shape[0]),idx+1,idx,axis=0) df_out = pd.DataFrame(out,index=df_index)
样本运行-
有一种方法:
duplicates = df[df['C'] == 'b'].copy() duplicates['C'] = 'c' df.append(duplicates).sort_index()
在NumPy级别工作,这里有一个向量化方法-
样本运行-
^{pr2}$有一种方法:
相关问题 更多 >
编程相关推荐