python - Pandas 数据框返回 None 值

标签 python pandas

我必须清理 CSV 文件数据。我试图清理的数据如下。 条件:我必须在每个缺失的字符串末尾添加@myclinic.com.au。

douglas@myclinic.com.au
mildura
broadford@myclinic.com.au
officer@myclinic.com.au
nowa nowa@myclinic.com.au
langsborough@myclinic.com.au
brisbane@myclinic.com.au
robertson@myclinic.com.au
logan village
ipswich@myclinic.com.au

代码是

    DataFrame = pandas.read_csv(ClinicCSVFile)
    DataFrame['Email'] = DataFrame['Email'].apply(lambda x: x if '@' in str(x) else str(x)+'@myclinic.com.au')
    DataFrameToCSV = DataFrame.to_csv('Temporary.csv', index = False)   
    print(DataFrameToCSV)

但是我得到的输出是无,我无法解决问题的后半部分,因为它生成了下面的错误

TypeError: 'NoneType' object is not iterable

源自上述数据框。 请帮我解决这个问题。

最佳答案

使用endswith for 条件通过 ~ 反转并在末尾添加字符串:

df.loc[~df['Email'].str.endswith('@myclinic.com.au'), 'Email'] += '@myclinic.com.au'
#if need check only @
#df.loc[~df['Email'].str.contains('@'), 'Email'] += '@myclinic.com.au'
print (df)
                           Email
0        douglas@myclinic.com.au
1        mildura@myclinic.com.au
2      broadford@myclinic.com.au
3        officer@myclinic.com.au
4      nowa nowa@myclinic.com.au
5   langsborough@myclinic.com.au
6       brisbane@myclinic.com.au
7      robertson@myclinic.com.au
8  logan village@myclinic.com.au
9        ipswich@myclinic.com.au

对我来说效果很好:

df = pd.DataFrame({'Email': ['douglas@myclinic.com.au', 'mildura', 'broadford@myclinic.com.au', 'officer@myclinic.com.au', 'nowa nowa@myclinic.com.au', 'langsborough@myclinic.com.au', 'brisbane@myclinic.com.au', 'robertson@myclinic.com.au', 'logan village', 'ipswich@myclinic.com.au']})
df.loc[~df['Email'].str.contains('@'), 'Email'] += '@myclinic.com.au'
print (df)
                           Email
0        douglas@myclinic.com.au
1        mildura@myclinic.com.au
2      broadford@myclinic.com.au
3        officer@myclinic.com.au
4      nowa nowa@myclinic.com.au
5   langsborough@myclinic.com.au
6       brisbane@myclinic.com.au
7      robertson@myclinic.com.au
8  logan village@myclinic.com.au
9        ipswich@myclinic.com.au

关于python - Pandas 数据框返回 None 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50324489/

相关文章:

python - 捕获 Django views.py 中的所有 URL 参数?

python - 连接来自 pickle 的 pandas 数据帧与来自内存字典的 pandas 数据帧 - 为什么内存中会失败?

python - np.where 代码 - ValueError : "cannot set items on DatetimeIndexResampler"

python - 使用 pandas 查找每日平均值

python - Pandas 将不同长度的列表分解成行

python - 在 Pandas 数据框中的任何列中删除具有 'question mark' 值的行

python - 如何在 QDoubleSpinBox 后缀中使用上标

python - Pandas 中的 TextFileReader 参数

python - 找不到 Pycharm Django Syncdb MySQLdb

python - 为什么 statsmodels "Df Model"小于包含的模型参数数量?