我正在创建一个Python脚本,它将在通过电子邮件发送之前自动将列值更改为NULL
。在
因为我的目标是暂时改变一些列的数据。下面是它的样子:
svc_no last_name first_name acc_no some_column
12345 Parker Peter 1111111 some_value
11111 Stark Tony 2222222 some_value
22222 Rogers Steve 3333333 some_value
我有多个Excel文件,我将把Excel文件发送给某人。有人会对这些Excel文件进行一些处理,但是在我通过电子邮件发送它之前,我需要将一些列值更改为NULL
,因为它的机密性。在
我想要的输出如下:
^{pr2}$以下是我所做的:
我迭代所有的文件并获得目录的路径来备份所有的Excel文件,这些文件将作为以后返回列的原始值的参考。我使用了os、*shutil**和glob库。在
path = os.path.absolute(__file__)
new_path = path + 'source'
files = []
if not os.path.exists(new_path):
os.makedirs(new_path)
for file in files:
if file not in new_path:
shutil.copy(file, new_path)
# line continue in number 2 list
这些代码将在与脚本相同的目录中创建一个文件夹,并将所有Excel文件复制到新创建的目录new_path
。在
现在,我将每个Excel文件声明为一个DataFrame,并使用.loc
将列值更改为NULL
:
df = pd.read_excel(file)
df.loc[df['l_name'].notnull(), 'last_name'] = 'NULL'
我还尝试插入一个包含NULL
值的列,并使用iloc
将其复制到所需的列中,但也没有发生任何事情。它也没有创建列。在
df.insert(loc=5, column='empty_column', value='NULL')
df.iloc[:,1] = df.iloc[:,5]
我的问题是它没有将last_name
列值更改为NULL
。还有别的办法吗?在
我已经在我的一些项目中使用了.iloc
和{
任何帮助将不胜感激。在
我真的不认为这是问题所在。你似乎太复杂了。这还不够:
创建机密版本:
^{pr2}$你得到这个:
然后根据某些决定决定注销哪个项目:
我不打算在写的时候处理路径/文件/目录管理,因为这似乎超出了您的问题范围。在
相关问题 更多 >
编程相关推荐