Python 使用熊猫导出数据

Python 使用熊猫导出数据,python,pandas,Python,Pandas,我在excel文件的列中应用了一种处理方法。现在,我想导出这个经过处理的专栏以及所有其他未经处理的专栏 我的数据(小示例): A B C French house Phone <phone_numbers> English house email blablabla@gmail.com French

我在excel文件的列中应用了一种处理方法。现在,我想导出这个经过处理的专栏以及所有其他未经处理的专栏

我的数据(小示例):

       A          B                                    C
  French      house                Phone <phone_numbers>
 English      house            email blablabla@gmail.com
  French  apartment                      my name is Liam
  French      house                         Hello George
 English  apartment   Ethan, my phone is <phone_numbers>
import re
import pandas as pd
from pandas import Series

df = pd.read_excel('data.xlsx')
data = Series.to_string(df['C'])

def emails(data):

    mails = re.compile(r'[\w\.-]+@[\w\.-]+')
    replace_mails = mails.sub('<adresse_mail>', data)

    return replace_mails

no_mails = emails(data)
no_mails.to_excel('new_data.xlsx')
AttributeError                            Traceback (most recent call last)
<ipython-input-7-8fd973998937> in <module>()
      7 
      8 no_mails = emails(data)
----> 9 no_mails.to_excel('new_data.xlsx')

AttributeError: 'str' object has no attribute 'to_excel'
       A          B                                    C
  French      house                Phone <phone_numbers>
 English      house                 email <adresse_mail>
  French  apartment                      my name is Liam
  French      house                         Hello George
 English  apartment   Ethan, my phone is <phone_numbers>

似乎不起作用。

函数似乎返回字符串。您应该将其转换为数据帧

如果要对数据帧执行正则表达式,应尝试以下操作:

result = df['C'].str.findall(r'[\w\.-]+@[\w\.-]+')
writer = pd.ExcelWriter('new_data.xls')
result.to_excel(writer, 'Sheet 1')
writer.save()

函数似乎返回一个字符串。您应该将其转换为数据帧

如果要对数据帧执行正则表达式,应尝试以下操作:

result = df['C'].str.findall(r'[\w\.-]+@[\w\.-]+')
writer = pd.ExcelWriter('new_data.xls')
result.to_excel(writer, 'Sheet 1')
writer.save()
试试这个

no_mails=pd.DataFrame({'email':[]})
无电子邮件['email']=电子邮件(数据)
没有邮件。发送到excel('new\u data.xlsx')

试试这个

no_mails=pd.DataFrame({'email':[]})
无电子邮件['email']=电子邮件(数据)

无邮件。到excel('new_data.xlsx')

您可以在pandas系列上使用
replace

df['C'] = df['C'].str.replace(r'[\w\.-]+@[\w\.-]+','<adresse_mail>')
df.to_excel('new_data.xlsx')
df['C']=df['C'].str.replace(r'[\w\.-]+@[\w\.-]+','')
df.to_excel('new_data.xlsx')

您可以在熊猫系列上使用
替换

df['C'] = df['C'].str.replace(r'[\w\.-]+@[\w\.-]+','<adresse_mail>')
df.to_excel('new_data.xlsx')
df['C']=df['C'].str.replace(r'[\w\.-]+@[\w\.-]+','')
df.to_excel('new_data.xlsx')

到excel
是一种数据帧方法。您应该对数据帧执行替换,而不是对提取为字符串的列执行替换(就像您对:
Series.to_string(df['C'])


坚持使用数据框,你应该做得很好。

到excel
是一种数据框方法。您应该对数据帧执行替换,而不是对提取为字符串的列执行替换(就像您对:
Series.to_string(df['C'])

坚持使用数据帧,你应该表现得很好。

emails()
返回一个sting而不是一个dataframe
emails()
返回一个sting而不是dataframe