我正在尝试添加2个新列以从完整日期中提取日期和月份,我的问题是当前我的数据集大约有120万条记录,预计到年底将超过20 m,并添加这些列需要很长时间,所以我要问最佳做法。
我正在使用aqlite,这是我的代码
cnx = sqlite3.connect('data/firstline.db')
df = pd.read_sql_query("SELECT * FROM firstline_srs", cnx)
df['day'] = pd.DatetimeIndex(df['Open_Date']).day
df['month'] = pd.DatetimeIndex(df['Open_Date']).month
df['Product_Name'].replace('', np.nan, inplace=True)
df['Product_Name'].fillna("N", inplace = True)
df['product_Type'].replace('', np.nan, inplace=True)
df['product_Type'].fillna("A", inplace = True)
df['full_path'] = df['Type'] + "/" + df['Area'] + "/" + df['Sub_Area'] + "/" + df['product_Type'] + "/" + df['Product_Name']
非常感谢您的一贯支持:)
如果原始DataFrame解决方案中没有丢失数据,则应简化一下。
所有列的组合也是不错的解决方案,最快的一种,请检查此。
df = pd.read_sql_query("SELECT * FROM firstline_srs", cnx)
df['Open_Date'] = pd.to_datetime(df['Open_Date'])
df['day'] = df['Open_Date'].dt.day
df['month'] = df['Open_Date'].dt.month
df['Product_Name'] = df['Product_Name'].replace('', 'N')
df['product_Type'] = df['product_Type'].replace('', 'A')
df['full_path'] = df['Type'] + "/" + df['Area'] + "/" + df['Sub_Area'] + "/" + df['product_Type'] + "/" + df['Product_Name']
如果缺少值:
df = pd.read_sql_query("SELECT * FROM firstline_srs", cnx)
df['Open_Date'] = pd.to_datetime(df['Open_Date'])
df['day'] = df['Open_Date'].dt.day
df['month'] = df['Open_Date'].dt.month
df['Product_Name'] = df['Product_Name'].replace('', np.nan).fillna("N")
df['product_Type'] = df['product_Type'].replace('', np.nan).fillna("A")
df['full_path'] = df['Type'] + "/" + df['Area'] + "/" + df['Sub_Area'] + "/" + df['product_Type'] + "/" + df['Product_Name']
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句