我有一个带有 python 的代码,可以在将 .csv 附加到另一个数据集之前对其进行清理。它缺少几列,所以我一直试图弄清楚如何使用 Pandas 添加列并填充行。
我目前有一列DiscoveredDate,格式为 10/1/2017 12:49。
我想要做的是获取该列,并且日期范围 10/1/2016-10/1/2017 中的任何内容都有一列FedFY的行填充 2017 年,同样适用于 2018 年。
下面是我当前的脚本减去一些不同的列清理。
import os
import re
import pandas as pd
import Tkinter
import numpy as np
outpath = os.path.join(os.getcwd(), "CSV Altered")
# TK asks user what file to assimilate
from Tkinter import Tk
from tkFileDialog import askopenfilename
Tk().withdraw()
filepath = askopenfilename() # show an "Open" dialog box and return the path to the selected file
#Filepath is acknowledged and disseminated with the following totally human protocols
filenames = os.path.basename(filepath)
filename = [filenames]
for f in filename:
name = f
df = pd.read_csv(f)
# Make Longitude values negative if they aren't already.
df['Longitude'] = - df['Longitude'].abs()
# Add Federal Fiscal Year Field (FedFY)
df['FedFY'] = df['DiscoveredDate']
df['FedFY'] = df['FedFY'].replace({df['FedFY'].date_range(10/1/2016 1:00,10/1/2017 1:00): "2017",df['FedFY'].date_range(10/1/2017 1:00, 10/1/2018 1:00): "2018"})
我也试过这个,但我认为我完全是在捏造它。
for rows in df['FedFY']:
if rows = df['FedFY'].date_range(10/1/2016 1:00, 10/1/2017 1:00):
then df['FedFY'] = df['FedFY'].replace({rows : "2017"})
elif df['FedFY'] = df['FedFY'].replace({rows : "2018"})
我应该如何有效地解决这个问题?只是我的语法把我弄乱了吗?还是我全都错了?
[为清楚起见标题和通篇进行了编辑。]