我有一個資料框,其中列值周圍有單引號。根據我的要求,我必須在字串周圍添加雙引號才能進一步進行。
例如,如果我在列中有一個字串['7hag5thdu4d'],我需要添加雙引號,最終字串應該像["'7hag5thdu4d'"]
以下是我的代碼和輸出:-
import pandas as pd
data = {"id": [1, 9, 8],
"person": ["['Eswar']", "['john']", "['otis']"],
"Role": ['{"manager"}', '{"analyst"}', '{"director"}']}
df = pd.DataFrame(data)
df = df.replace("'", '\'"', regex=True)
print(df)
| ID | 人 | 角色 |
|---|---|---|
| 1 | ['"埃斯瓦爾'"] | {“經理”} |
| 9 | ['“約翰'”] | {“分析師”} |
| 8 | ['"奧蒂斯'"] | {“導演”} |
我在輸出中面臨的問題是字符的左對齊,他們已經改變了它們的位置。
有人可以幫我解決這個問題.........:-)
uj5u.com熱心網友回復:
試試這個:
df = df.replace('([{\\[])[\'\"] (. ?)[\'\"] ([}\\]])', '\\1\"\'\\2\'\"\\3', regex=True)
輸出:
>>> df
id person Role
0 1 ["'Eswar'"] {"'manager'"}
1 9 ["'john'"] {"'analyst'"}
2 8 ["'otis'"] {"'director'"}
uj5u.com熱心網友回復:
你沒有考慮到你有時想要'",有時你想要"'。您可以進行兩次替換,一次替換開始,一次替換結束。
df = df.replace("\['",'["\'',regex=True)
df = df.replace("'\]",'\'"]',regex=True)
uj5u.com熱心網友回復:
嘗試replace使用替換值的字典:
df = df.replace({r"\['": '["\'', r"'\]": '\'"]'}, regex=True)
print(df)
# Output:
id person Role
0 1 ["'Eswar'"] {"manager"}
1 9 ["'john'"] {"analyst"}
2 8 ["'otis'"] {"director"}
其他方式: df.replace(r"'([^']*)'", """\"'\\1'\"""", regex=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/392645.html
上一篇:為什么在pd.DataFrame.to_hdf()中設定key='table'會在生成的hdf中創建一個額外的空鍵?
