pandas更新列数据的两种map映射方法

此次演示用到机器学习经典的鸢尾花数据集

# 读取数据
data = pd.read_csv('iris.txt',delimiter=',',header=None)
# 打印显示数据
print(data)

       0    1    2    3               4
0    5.1  3.5  1.4  0.2     Iris-setosa
1    4.9  3.0  1.4  0.2     Iris-setosa
2    4.7  3.2  1.3  0.2     Iris-setosa
3    4.6  3.1  1.5  0.2     Iris-setosa
4    5.0  3.6  1.4  0.2     Iris-setosa
5    5.4  3.9  1.7  0.4     Iris-setosa
6    4.6  3.4  1.4  0.3     Iris-setosa
7    5.0  3.4  1.5  0.2     Iris-setosa
8    4.4  2.9  1.4  0.2     Iris-setosa
9    4.9  3.1  1.5  0.1     Iris-setosa
10   5.4  3.7  1.5  0.2     Iris-setosa
11   4.8  3.4  1.6  0.2     Iris-setosa
12   4.8  3.0  1.4  0.1     Iris-setosa
13   4.3  3.0  1.1  0.1     Iris-setosa
14   5.8  4.0  1.2  0.2     Iris-setosa
15   5.7  4.4  1.5  0.4     Iris-setosa
16   5.4  3.9  1.3  0.4     Iris-setosa
17   5.1  3.5  1.4  0.3     Iris-setosa
18   5.7  3.8  1.7  0.3     Iris-setosa
19   5.1  3.8  1.5  0.3     Iris-setosa
20   5.4  3.4  1.7  0.2     Iris-setosa
21   5.1  3.7  1.5  0.4     Iris-setosa
22   4.6  3.6  1.0  0.2     Iris-setosa
23   5.1  3.3  1.7  0.5     Iris-setosa
24   4.8  3.4  1.9  0.2     Iris-setosa
25   5.0  3.0  1.6  0.2     Iris-setosa
26   5.0  3.4  1.6  0.4     Iris-setosa
27   5.2  3.5  1.5  0.2     Iris-setosa
28   5.2  3.4  1.4  0.2     Iris-setosa
29   4.7  3.2  1.6  0.2     Iris-setosa
..   ...  ...  ...  ...             ...
120  6.9  3.2  5.7  2.3  Iris-virginica
121  5.6  2.8  4.9  2.0  Iris-virginica
122  7.7  2.8  6.7  2.0  Iris-virginica
123  6.3  2.7  4.9  1.8  Iris-virginica
124  6.7  3.3  5.7  2.1  Iris-virginica
125  7.2  3.2  6.0  1.8  Iris-virginica
126  6.2  2.8  4.8  1.8  Iris-virginica
127  6.1  3.0  4.9  1.8  Iris-virginica
128  6.4  2.8  5.6  2.1  Iris-virginica
129  7.2  3.0  5.8  1.6  Iris-virginica
130  7.4  2.8  6.1  1.9  Iris-virginica
131  7.9  3.8  6.4  2.0  Iris-virginica
132  6.4  2.8  5.6  2.2  Iris-virginica
133  6.3  2.8  5.1  1.5  Iris-virginica
134  6.1  2.6  5.6  1.4  Iris-virginica
135  7.7  3.0  6.1  2.3  Iris-virginica
136  6.3  3.4  5.6  2.4  Iris-virginica
137  6.4  3.1  5.5  1.8  Iris-virginica
138  6.0  3.0  4.8  1.8  Iris-virginica
139  6.9  3.1  5.4  2.1  Iris-virginica
140  6.7  3.1  5.6  2.4  Iris-virginica
141  6.9  3.1  5.1  2.3  Iris-virginica
142  5.8  2.7  5.1  1.9  Iris-virginica
143  6.8  3.2  5.9  2.3  Iris-virginica
144  6.7  3.3  5.7  2.5  Iris-virginica
145  6.7  3.0  5.2  2.3  Iris-virginica
146  6.3  2.5  5.0  1.9  Iris-virginica
147  6.5  3.0  5.2  2.0  Iris-virginica
148  6.2  3.4  5.4  2.3  Iris-virginica
149  5.9  3.0  5.1  1.8  Iris-virginica

[150 rows x 5 columns]

现在想要把最后一列“4”的列数据更新为数字,方便后续做独热处理

即:
Iris-setosa --> 0
Iris-versicolor --> 1
Iris-virginica --> 2

方法一

def fn(x):
    if x == 'Iris-setosa':
        return 0
    if x == 'Iris-versicolor':
        return 1
    else:
        return 2

data['4'] = data['4'].map(fn)

方法二

data['4']=data['4'].map({"Iris-setosa":0,"Iris-versicolor":1,"Iris-virginica":2})
print(data)

两种方法记录
应该是第二种更简单一点点
仅供参考

2021.5.21

### 回答1: 好的,您的问题是如何使用 pandas 匹配数据。在 pandas 中,您可以使用 merge 函数来合并两个 DataFrame 对象。其中一个 DataFrame 是作为左表,另一个 DataFrame 是作为右表,merge 函数会根据指定的或索引进行匹配,并将相应的行合并在一起。例如,如果您有两个 DataFrame 对象 df1 和 df2,且它们都有一个名为 key 的,您可以使用以下代码将它们合并: ```python merged_df = pd.merge(df1, df2, on='key') ``` 此外,您还可以使用 join 函数来将两个 DataFrame 对象沿着它们的索引进行合并。例如,如果您有两个 DataFrame 对象 df1 和 df2,且它们都有相同的索引,则可以使用以下代码将它们合并: ```python merged_df = df1.join(df2, how='inner') ``` 在这里,how 参数指定了如何对齐索引,inner 表示只保留两个 DataFrame 共有的行。更多关于 pandas 的匹配数据的用法,您可以参考 pandas 官方文档。 ### 回答2: pandas 是一个强大的数据处理工具,可以用来匹配数据。在 pandas 中,我们可以使用几种方法来实现数据匹配,如下所示: 1. 使用`.merge()`方法:merge 函数可以根据指定的键将两个或多个数据框进行合并。例如,我们可以将两个具有相同键的数据框合并为一个数据框。 2. 使用`.join()`方法:join 函数将基于索引进行连接,可以将两个具有不同名和相同索引的数据框连接为一个数据框。 3. 使用`.concat()`方法:concat 函数可以按照指定的轴将多个数据框进行连接。例如,我们可以将多个具有相同数据框按行或按进行连接。 4. 使用`.isin()`方法:isin 函数可以用来判断某个值是否在另一个数据框的中。例如,我们可以使用 isin 函数找到满足条件的行或。 5. 使用`.map()`方法map 函数可以根据指定的映射关系将一个数据框中的某一的值替换为另一个数据框中的值。例如,我们可以将一个数据框的城市名称映射为对应的省份名称。 以上是 pandas 的一些常用方法来匹配数据。通过使用这些方法,我们可以方便地对数据进行匹配和处理,进而进行更进一步的分析和应用。 ### 回答3: pandas是一个功能强大的Python库,用于数据分析和处理。当需要匹配数据时,pandas提供了一些方法和函数来实现。 首先,pandas中的主要数据结构是DataFrame,它类似于一个二维的表格,其中包含了一系的行和。可以通过读取文件或者手动创建DataFrame来加载数据。 在匹配数据方面,pandas提供了多个方法。其中一种常用的方法是使用条件过滤。通过指定某一满足特定条件,可以筛选出满足条件的数据行。例如,可以通过使用逻辑表达式和比较运算符来匹配数据行,例如筛选出某一中数值大于某个阈值的数据。 另外一个常用的方法是使用merge函数进行数据匹配。merge函数可以将两个DataFrame按照指定的进行连接,并且可以指定连接方式(如内连接、左连接、右连接等)。这样可以根据指定的,将两个DataFrame的数据进行匹配。匹配成功后,可以根据需要进行进一步的数据处理和分析。 此外,pandas还提供了一些其他的数据匹配方法,例如join函数和concat函数。join函数可以根据索引进行表格的连接,而concat函数则可以将多个DataFrame进行拼接。这些方法都可以根据指定的条件对数据进行匹配,以满足我们的需求。 总而言之,pandas提供了多种方法来进行数据匹配。通过利用这些方法,我们可以根据指定的条件将数据进行匹配和筛选,以便进行后续的数据分析和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值