我有一個資料框
df_in = pd.DataFrame([["A","X",5,4,1],["B","Y",3,3,1],["C","Y",4,7,4]], columns=['col1', 'col2', 'col3', 'col4','col5'])
我想重復一行n不。次數和計數也應該從沒有增加。存在于 col4 中。
例如:我想重復 B 行 3 次,col4 中的計數將從 col4 中存在的當前值增加,如 3,4 和 5。類似地,對于 C 行重復 2 次并從當前值增加 col4 中的計數。
預期輸出:
df_Out = pd.DataFrame([["A","X",5,4,1],["B","Y",3,3,1],["B","Y",3,4,1],["B","Y",3,5,1],["C","Y",4,7,4],["C","Y",4,8,4]], columns=['col1', 'col2', 'col3', 'col4','col5'])
怎么做?
uj5u.com熱心網友回復:
為重復次數創建字典,映射Series.map,如果沒有匹配集1,然后使用for 追加行Index.repeat的索引值,最后添加計數器for :DataFrame.locGroupBy.cumcountcol4
d = {'B':3, 'C':2}
df = df_in.loc[df_in.index.repeat(df_in['col1'].map(d).fillna(1))]
df['col4'] = df.groupby(level=0).cumcount()
df = df.reset_index(drop=True)
print (df)
col1 col2 col3 col4 col5
0 A X 5 4 1
1 B Y 3 3 1
2 B Y 3 4 1
3 B Y 3 5 1
4 C Y 4 7 4
5 C Y 4 8 4
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/431697.html
標籤:Python python-3.x 熊猫 数据框
上一篇:熊貓:如何計算一個值到另一個值的平均值(連續平均值)
下一篇:使用熊貓將值提取到新列
