df = pd.DataFrame({'nearby_subway_station':['yes','no','a'], 'Station':['no','yes','no']})
print (df)
Station nearby_subway_station
0 no yes
1 yes no
2 no a
import pandas as pd
import numpy as np
from numpy import random
# Generating the data, 20 rows by 5 columns.
data = random.choice(['yes','no'], size=(20, 5), replace=True)
col_names = ['col_{}'.format(a) for a in range(1,6)]
df = pd.DataFrame(data, columns=col_names)
# Supplying lists of values to what they will replace. No dict needed.
df_bool = df.replace(to_replace=['yes','no'], value=[True, False])
您可以使用^{} :
另一种解决方案:
^{pr2}$感谢Jon Clements提供非常好的主意-使用^{} :
如果
dict
中没有数据,则存在一些差异:applymap
为boolean
,strings
创建{NaN
。在map
创建NaN
:replace
不要创建NaN
或None
,但原始数据不变:我会和pandas.DataFrame.replace因为我认为这是最简单的,并且有支持这个任务的内置参数。也可以按要求提供一个线性解决方案。在
第一种情况下,替换“yes”或“no”的所有实例:
第二种情况,您只想替换列的子集,如的文档中所述DataFrame.replace. 使用嵌套字典,其中第一组键是包含要替换的值的列,而值是将值映射到替换项的字典:
^{pr2}$您可以使用
stack
/unstack
习惯用法使用@jezrael的设置
^{pr2}$那么
计时
小数据
更大的数据
相关问题 更多 >
编程相关推荐