早上好,
我是一個新的 python 用戶,我正在嘗試在 python 中復制以下 excel 函式:
=concatenate(left(H2,search(" ",H2,1)-1),if(LEN(right(H2,LEN(H2)-search(" ",H2,1)))=2,"00",if(LEN(right(H2,LEN(H2)-search(" ",H2,1)))=3,"0","")),right(H2,LEN(H2)-search(" ",H2,1)),"-KG")
我正在嘗試將 Highways 轉換為我的計算機程式(arcgis)讀取的格式,基本上將我的 csv 列格式從:

右列到左列,所以基本上保持前面的兩個字母(例如 US、FM、SL、CR)在前面添加零,使其始終成為 4 位高速公路,并在末尾添加“-KG”。
謝謝
uj5u.com熱心網友回復:
如果使用 Python 串列,例如
arr = ['US 90', 'FM 1436', 'SL 305', 'US 277', 'FM 1589', 'SL 480']
做
result = [f'{s}{n:0>4}-KG' for s, n in map(str.split, arr)]
這使
['US0090-KG', 'FM1436-KG', 'SL0305-KG', 'US0277-KG', 'FM1589-KG', 'SL0480-KG']
uj5u.com熱心網友回復:
這看起來像:
import csv
with open("yourfile.csv") as fp:
reader = csv.reader(fp, delimiter=" ")
output = [[' '.join(row),f'{row[0]}{row[1].zfill(4)}-KG'] for row in reader]
print(output)
[['US 50', 'US0050-KG'], ['CA 987', 'CA0987-KG'], ['IL 4', 'IL0004-KG']]
該zfill()函式將用0字符填充字串以使字串成為引數的長度(4在這種情況下)
如果您想寫出該串列串列,請查看此答案
uj5u.com熱心網友回復:
此函式將舊的高速公路格式轉換為您想要的格式:
def convert(highway):
split = highway.split()
prefix = split[0]
number = split[1]
return prefix (4 - len(number))*"0" number "-KG"
如果您正在使用 pandas 資料框,這將轉換您的整個列:
import pandas as pd
highways = ["US 90", "FM 1436", "SL 305", "US 277", "FM 1689", "SL 480"]
df = pd.DataFrame(highways, columns=["Highways"])
df["Highways"] = df["Highways"].transform(convert, axis=0)
print(df)
出去:
Highways
0 US0090-KG
1 FM1436-KG
2 SL0305-KG
3 US0277-KG
4 FM1689-KG
5 SL0480-KG
或者,如果您使用的是串列:
highways = ["US 90", "FM 1436", "SL 305", "US 277", "FM 1689", "SL 480"]
new_highways = [convert(highway) for highway in highways]
print(new_highways)
出去:
['US0090-KG', 'FM1436-KG', 'SL0305-KG', 'US0277-KG', 'FM1689-KG', 'SL0480-KG']
uj5u.com熱心網友回復:
您可以嘗試使用字串格式而不是 zfill:這是一個示例,它不適用于 csv,但在 arcgis 中,我認為您想在屬性計算器中使用它。
List= ['US 90','FM 1436','SL 305']
for elem in List:
Splited = str(elem).split(' ')
Concatenated_elem = str(Splited[0]) f'{int(Splited[1]):04d}' '-KG'
print(Concatenated_elem)
在這種情況下,結果是列印:
US0090-KG
FM1436-KG
SL0305-KG
希望能幫助到你,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/513810.html
標籤:Python擅长
上一篇:從VBA組合框打開作業表
