【发布时间】:2014-11-18 19:02:41
【问题描述】:
我正在尝试清理数据。对于名字变量,我想 1) 为那些只有一个字符的条目分配缺失值 (NaN),2) 如果它只包含两个字符并且其中一个字符是符号,则分配缺失值(即:" ." 或 "?"),以及 3) 将 "wm" 转换为字符串 "william"
我尝试了以下代码和其他代码,但似乎都不起作用:
将熊猫导入为 pd 从熊猫导入数据框,系列 将 numpy 导入为 np 重新导入
def CleanUp():
data = pd.read_csv("C:\sample.csv")
frame2 = DataFrame(data)
frame2.columns = ["First Name", "Ethnicity"]
# Convert weird values to missing value
for Name in frame2["First_Name"]:
if len(Name) == 1:
Name == np.nan
if (len(Name) == 2) and (Name.str.contain(".|?|:", na=False)):
Name == np.nan
if Name == "wm":
Name == "william"
print frame2["First_Name"]
【问题讨论】:
-
pandas 的魔力在于不进行迭代,除非绝对必要。你不必。查看 pandas.DataFrame.replace:pandas.pydata.org/pandas-docs/dev/generated/…
-
我尝试以下方法:frame2["First_Name"].replace(to_replace="wm", value="william")。没用。
-
在我下面的示例中有效。让我知道什么不适合你
标签: python-2.7 pandas missing-data data-manipulation