我必須使用每個單元格的原始值有條件地編輯 Pandas DataFrame 中一列(此處名為“鏈接”的列)的所有單元格。
我知道如何修改列的每個單元格,但不知道如何使用單元格的原始值編輯單元格并有條件地進行修改。
我有簡單的資料框示例:

我對最后一列“鏈接”感興趣。
如果單元格 endwswith .html 我需要將其更改為:
<A> <original value> </A>
例如:
/l/sf-49ers/456346aaa.html
如果它是我需要制作的數字:
some-domain.info/number
例如:
some-domain.info/343
如果是文本(字串):
我需要把它放在 B 標簽中:
例如:
“巴爾的摩雷恩斯”
如果它是無,我需要用文本“未指定鏈接”替換它。
我使用了這種語法:
def change_links(df):
conditions = (..........)
values = [.......................]
df['Links'] = np.select(conditions, values)
return df
但這對我不起作用。
uj5u.com熱心網友回復:
據我了解,您是正確的,您需要使用 apply 功能:
def change_links(link):
if 'html' in link:
newLink=0 #here change your link
elif link[-1].isdigit():
newLink='some-domain.info/' str(link) #or do what you nedd
else:
newLink=1 #here add your tags
return newLink
df['newLink'] = df['Links'].apply(lambda x(change_links(x)))
uj5u.com熱心網友回復:
您的問題存在格式問題,但您可以使用該功能實作您想要的apply()
def myFunction(value):
# For example for a int
new_value = "some-domain.info/" str(value)
return new_value
df['Links'] = df.['Links'].apply(myFunction)
我可以用更多資訊來完成答案。
uj5u.com熱心網友回復:
由于您的問題有點混亂,我根據我的理解回答您的問題。您有兩個選擇:
applymap
在任何一種情況下,您只需要執行以下操作:
def myCustomFunc(valueOfRow):
# you need to change the value inside this function.
return valueOfRow "/more-link"
df["Link"] = df["Link"].apply(myCustomFunc)
如果您對地圖感興趣,可以使用map函式代替apply上述單元格。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/424783.html
