init df:
col2 col1
0 a w
1 2 1
2 NaN 2
use dict to replace one column,dict= {1: 'A', 2: 'B'}
new df:
col2 col1
0 a NaN
1 2 A
2 NaN B
PS:
数据量大的情况下,map会比 replace 要快。
【更多、更及时内容欢迎留意微信公众号: 小窗幽记机器学习 】
背景一个数据中某一列的值需要根据某个字典批量映射为字典中的value。方法1:pandas中的df.replace import pandas as pd import numpy as np df = pd.DataFrame({'col2': {0: 'a', 1: 2, 2: np.nan}, 'col1': {0: 'w', 1: 1, 2: 2}}) print("init df:") print(df) column_dict = {1: "A
一直以来,Excel一直作为一个高效的数据展示、处理、分析的工具被我们使用,但随着处理量增大,不可避免的遇到长时间等待响应或干脆“未响应”。因此,我们需要找到替代工具来避免此类问题,Python中的pandas是如何像Excel一样处理数据呢。
先构造示例数据(python3):
import pandas as pddata=pd.DataFrame([{2,5,6,7,8},(2,5,6,7,8),[12,31,4,5,6],range(11,111,20),range(9,23,3)]...
Setup
需要将Pandas dataframe df中一列的值根据字典d进行替换,将数字1、2、3、4、5换成字符"number 1", “number 2”,以此类推。
import numpy as np
import pandas as pd
import time
# construct test dataset
n = 1000000 # length of testset
d = {1:'number 1',2:'number 2',3:'number 3',4:'number 4',5:
d = {1: 'a', 2: 'b', }
df = pd.DataFrame(np.random.randint(0, 4, size=(10)))
df['change_value'] = df.loc[:, 0].replace(d)
最后的效果:
掌柜最近在做王者荣耀2022KPL春季赛的赛事数据分析,下表kpl是从官方数据平台获取到的2022KPL春季赛常规赛近500场的赛事数据:
这里大家可以很明显的看到team_bh和team_ph两列下面都是一堆数字,其实它们分别代表的是王者荣耀里面的各个英雄。下表code就是掌柜整理的2022KPL春季赛常规赛登场的所有英雄和对应的数字编码:
将kpl表中的team_bh和team_ph两列数据进行拆分,分别得出每个战队ban(禁用)的四位英雄和pick(选用)的五位英雄;
对拆分后的禁用
pandas Series的replace函数的性能改进问题描述解决方法
在使用pandas对数据DataFrame处理时需要将String类型的值按照编码字典转换成数值类型。每一列有一个单独的编码字典。最初图方便采用的是pandas自带的replace函数,但是效率很低。
# mapdict is like {'a':0,'bb':1}
df[col] = df[col].replac...
如果你想修改某一列的数据,你可以使用 df.loc[:, 'column_name'] 来获取这一列的数据。然后你可以对这一列使用赋值操作,就可以修改这一列的数据了。例如:
df.loc[:, 'column_name'] = new_values
这里的 new_values 可以是一个列表,也可以是一个 NumPy 数组。
注意,你也可以使用 df['column_name'] 来获取这一列...
在Pandas中,有多种方法可以实现字符串的批量替换。以下是其中一种方法:
你可以使用`replace()`函数来批量替换DataFrame中的字符串。首先,你需要选择要替换的列,然后使用`replace()`函数来指定要替换的值和替换后的值。例如,你可以使用以下代码将列`pc`中的字符串`'qi'`替换为`3`:
```python
df['pc'] = df['pc'].replace('qi', 3)
如果你想要替换多个字符串,你可以将它们放入一个列表中,并将替换后的值作为第二个参数传递给`replace()`函数。例如,以下代码将`'qi'`、`'yi'`和`'san'`分别替换为`3`:
```python
df['pc'] = df['pc'].replace(['qi', 'yi', 'san'], 3)
另一种方法是使用一个字典来指定要替换的值和替换后的值。例如,以下代码将`'qi'`替换为`7`,将`'yi'`替换为`1`,将`'san'`替换为`3`:
```python
df['pc'] = df['pc'].replace({'qi': 7, 'yi': 1, 'san': 3})
以上是一些在Pandas中批量替换字符串的方法。你可以根据你的具体需求选择其中一种方法来实现字符串的批量替换。