Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 替换数据框中单元格中的部分文本_Pandas_Python 2.7 - Fatal编程技术网

Pandas 替换数据框中单元格中的部分文本

Pandas 替换数据框中单元格中的部分文本,pandas,python-2.7,Pandas,Python 2.7,这是先前提出并解决的问题的扩展() 我有一个数据框,其中使用不同的数字代码代替文本字符串,现在我想用文本值替换这些代码。在参考问题(上面的链接)中,它以前使用过regex方法,但现在不再使用了,我不知道.replace方法是否有任何更改 我的数据帧示例: col1 0 1,2,3 1 1,2 2 2-3 3 2, 3 我编写的代码行使用需要更改的值字典,然后将regex设置为true 我使用了以下代码: d={'1':'a','2':'b','3':'c'} df['c

这是先前提出并解决的问题的扩展()

我有一个数据框,其中使用不同的数字代码代替文本字符串,现在我想用文本值替换这些代码。在参考问题(上面的链接)中,它以前使用过regex方法,但现在不再使用了,我不知道.replace方法是否有任何更改

我的数据帧示例:

    col1
0   1,2,3
1   1,2
2   2-3
3   2, 3
我编写的代码行使用需要更改的值字典,然后将regex设置为true

我使用了以下代码:

d={'1':'a','2':'b','3':'c'}
df['col2']=df['col1'].replace(d,regex=True)
我得到的结果是:

    col1    col2
0   1,2,3    a,2,3
1   1,2      a,2
2   2-3      b-3
3   2, 3     b, 3
鉴于,我期望:

    col1    col2
0   1,2,3    a,b,c
1   1,2      a,b
2   2-3      b-c
3   2, 3     b, c
或者:

    col1
0   a,b,c
1   a,b
2   b-c
3   b, c

在过去1年中,.replace方法是否有任何更改?还是我做错了什么?之前我写的代码也能工作,但现在不行了。

好的,经过一些实验后,我发现对于单元格中的每个代码(数字),我都需要一个正则表达式替换语句,例如:

df.replace({'col1': r'1'}, {'col1': 'a'}, regex=True, inplace=True)
df.replace({'col1': r'2'}, {'col1': 'b'}, regex=True, inplace=True)
df.replace({'col1': r'3'}, {'col1': 'c'}, regex=True, inplace=True)
其结果是:

    col1
0   a,b,c
1   a,b
2   b-c
3   b, c
这只是一个解决办法,因为它将覆盖现有列,但在我的情况下,它是有效的,因为我的主要目标是用值替换代码