我試圖用固定數字(1000)劃分一些列并洗掉逗號,還將混合型別更改為int倒數第二行代碼。除了 的串列columns,我確實有其他列在執行代碼后被洗掉。如何保留其他列?
df_1 = pd.read_excel(os.path.join(directory,'copy.xlsm'), sheet_name= "weekly",header= None)
df_1 = df_1.drop(df_1.columns[[0,1]], axis=1)
df_1.columns = df_1.loc[3].rename(None)
df_1 = df_1.drop(range(5))
columns =["A","B","D", "G"]
df_1=df_1.loc[:len(df_1) - 2, columns].replace(',', '', regex=True).apply(pd.to_numeric) / 1000
df_1.to_csv(directory 'new.csv', index=False, header= True)
uj5u.com熱心網友回復:
你的問題出在這部分:
df_1 = df_1.loc[...]...
使用此選擇器時,您將原始值覆寫為df_1列的子集(而且您似乎也丟失了一些行)[:len(df_1) - 2, columns]:您只需要更新該選擇的值:
df_1.loc[...] = df_1.loc[...]...
通過loc用作存盤操作結果的目標值,您只需將這些行和列修改為它們應該存在的值。
您的代碼應該包含此行(為清楚起見添加):
df_1.loc[:len(df_1) - 2, columns] = df_1.loc[:len(df_1) - 2, columns].replace(',', '', regex=True).apply(pd.to_numeric) / 1000
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/428702.html
