我有一個企業工具,可以從具有相對路徑的系統中匯出檔案。我想將匯出的資料用作 Python 腳本中的匯入來重命名檔案。資料匯出如下所示:
DOCID FILENAME FILE_PATH
SS-WS-000471 2019-01 Civic CM #20-14-01.pdf .\VOL01\NATIVES\NATIVE001\WS-000471.pdf
SS-WS-000472 2019-01 Civic CM #20-14-02.pdf .\VOL01\NATIVES\NATIVE001\WS-000472.pdf
我正在嘗試將 FILE_PATH 列中的相對路徑更改為絕對路徑。我嘗試使用 replace 將 .\ 替換為從匯入檔案中提取的目錄。我在網上進行了廣泛的搜索并嘗試了很多東西,但不能完全讓它發揮作用。
我想要的結果是將 .\ 更改為 X:\NYC\Schley\3223\ 這是包含 \VOL01\NATIVES... 的目錄結構
我的代碼如下。
import os
import pathlib
import pandas as pd
#input file
infile = r'X:\NYC\Schley\3223\20220107 Test_export.csv'
#get filepath from input file
p = os.path.dirname(infile)
#create dataframe from input file
xref = pd.read_csv(infile)
#replace .\ with path information
xref['FILE_PATH'] = xref['FILE_PATH'].apply(lambda x: x.replace('\.\\\\', p))
任何建議,將不勝感激。
uj5u.com熱心網友回復:
您可以使用 pathlib
file_dir = pathlib.Path("X:\\NYC\\Schley\\3223\\") # you can use pathlib.Path().cwd
df['FILE_PATH'] = df['FILE_PATH'].apply(lambda x: pathlib.Path(file_dir, x).absolute())
好處:
- 適用于 Windows 和 Unix。
- 處理各種形式的路徑前綴。
- 處理前導和尾隨斜杠。
uj5u.com熱心網友回復:
使用str.replace:
df['FILE_PATH'] = df['FILE_PATH'].str.replace(r'^\.', r'X:\\NYC\\Schley\\3223', regex=True)
print(df)
# Output
DOCID FILENAME FILE_PATH
0 SS-WS-000471 2019-01 Civic CM #20-14-01.pdf X:\NYC\Schley\3223\VOL01\NATIVES\NATIVE001\WS-...
1 SS-WS-000472 2019-01 Civic CM #20-14-02.pdf X:\NYC\Schley\3223\VOL01\NATIVES\NATIVE001\WS-...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/406336.html
標籤:
上一篇:如何使用過濾器修改資料框值
