我有這個數據框(樣本):d = {'Col1': [10, 10, 20, 38, 10, 100, 45, 8, 18, 30, 10], 'Col2': [1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0], 'Col3': ['AA', 'BB', 'AA', 'BB', 'BB', 'BB', 'CC', 'AA', 'DD', 'CC', 'BB']}df = pd.DataFrame(data=d)Col3 中的字符串需要替換為一個值,該值在所有行中對于相同的字符串都是一致的。輸出應該看起來像一個帶有 Col3_nw 的數據幀:d_target = {'Col1': [10, 10, 20, 38, 10, 100, 45, 8, 18, 30, 10], 'Col2': [1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0], 'Col3': ['AA', 'BB', 'AA', 'BB', 'BB', 'BB', 'CC', 'AA', 'DD', 'CC', 'BB], 'Col3_nw': [1, 2, 1, 2, 2, 2, 3, 1, 4, 3, 2]}df_target = pd.DataFrame(data=d_target)我嘗試對 Col3 上的數據幀進行排序并循環遍歷它,在 Col3 值相同的情況下添加相同的計數器值,并在出現新的 Col3 值時將計數器值加 1。df_temp = df.sort_values('Col3')String_value = df_temp['Col3'].iloc[0]Counter = 1df_temp.loc[0,'Col3_nw'] = Counterfor index, row in df_temp.iterrows(): if df_temp.iloc[index,'Col3'] == String_value: df_temp.loc[index,'Col3_nw'] = Counter if df_temp.iloc[index,'Col3'] != String_value: Counter = Counter + 1 df_temp.loc[index,'Col3_nw'] = Counter這段代碼提供了我不明白的錯誤:ValueError:基于位置的索引只能有 [整數,整數切片(開始點被包含,結束點被排除),整數列表,布爾數組] 類型有人能幫我讓它在 Python 中工作嗎?
如何用不同的值替換數據框列中的重復字符串
慕的地8271018
2021-12-17 10:18:58