pandas 如何在dataframe中用列中的字符串更改True/False?

hmtdttj4  于 2023-08-01  发布在  其他
关注(0)|答案(4)|浏览(132)

我试图转换真/假值在一个特定的列与一些字符串值,但它不来。我该怎么办?True/False是布尔值。
范例:
df1:

col1  col2  col3
Ram   shyam True
axa   moh   False
sur   ami   True

字符串
预期输出:
df:

col1  col2  col3
Ram   shyam right
axa   moh   False
sur   ami   right

yduiuuwa

yduiuuwa1#

可以使用np.where

import pandas as pd, numpy as np

dct = {"col1": ["Ram", "axa", "sur"],
       "col2": ["shyam", "moh", "ami"],
       "col3": [True, False, True]}
df1 = pd.DataFrame.from_dict(dct)

df1['col3'] = np.where(df1['col3'] == True, 'right', 'False')
print(df1)

字符串
这产生

col1   col2   col3
0  Ram  shyam  right
1  axa    moh  False
2  sur    ami  right


注意,这将列col3的类型从bool更改为object

qyswt5oh

qyswt5oh2#

您可以使用简单的**df.replace**命令,如下所示:

In [1546]: df['col3'] = df['col3'].replace({True:'right'})
In [1547]: df
Out[1546]: 
  col1   col2   col3
0  Ram  shyam  right
1  axa    moh  False
2  sur    ami  right

字符串

hzbexzde

hzbexzde3#

试试这个:

df["col3"] = df["col3"].apply(lambda x: "right" if x==True else False)

字符串

5lwkijsr

5lwkijsr4#

如果有人想替换多个cols中的字符串,而不是整个dataframe,这里有一个我在文档中没有看到的例子

df[cols] = df[cols].replace({"old": "new"})

字符串

相关问题