Mak*_*aku 5 python list python-3.x pandas
我正在寻找一种方法来进一步简化我的代码:
资料集:
categorical_data = pd.Series(["dog", "lion", "cat", "crustacean", "dog", "insect", "insect", "cat", "crustacean"])
Run Code Online (Sandbox Code Playgroud)
我想做的是用“动物”代替狗,狮子和猫。我可以这样写:
categorical_data = categorical_data.str.replace("dog", "animal")
categorical_data = categorical_data.str.replace("cat", "animal")
categorical_data = categorical_data.str.replace("lion", "animal")
Run Code Online (Sandbox Code Playgroud)
有没有办法让str.replace()函数接受一串字符串而不是一个字符串?
例:
categorical_data = categorical_data.str.replace([dog, lion, cat], "animal")
Run Code Online (Sandbox Code Playgroud)
要替换为列表,可以使用Series.replace:
categorical_data = categorical_data.replace(['dog', 'lion', 'cat'], "animal")
print (categorical_data)
0 animal
1 animal
2 animal
3 crustacean
4 animal
5 insect
6 insect
7 animal
8 crustacean
dtype: object
Run Code Online (Sandbox Code Playgroud)
答案之间的区别在于子字符串替换:
categorical_data = pd.Series(["dog gorilla", "lion", "cat", "crustacean"])
print (categorical_data.replace(['dog', 'lion', 'cat'], "animal"))
0 dog gorilla
1 animal
2 animal
3 crustacean
dtype: object
print (categorical_data.str.replace(r'(dog|cat|lion)', 'animal', regex=True))
0 animal gorilla
1 animal
2 animal
3 crustacean
dtype: object
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |