Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 写入CSV文件时未筛选行_Python_Pandas_Csv_Datetime_Export To Csv - Fatal编程技术网

Python 写入CSV文件时未筛选行

Python 写入CSV文件时未筛选行,python,pandas,csv,datetime,export-to-csv,Python,Pandas,Csv,Datetime,Export To Csv,此代码用于查找特定时间范围内(在本例中为2018年)的延迟交付,并将数据写入csv文件(otdedit.csv)。但是,尽管数据按年份正确过滤,但未延迟交付的值不会被过滤掉。我的问题是,如何筛选出只有延迟交付的行,将其写入csv文件otdedit.csv import pandas as pd from datetime import datetime from datetime import timedelta PURCHASE_ORDER = 'Material' DELIVERY_DA

此代码用于查找特定时间范围内(在本例中为2018年)的延迟交付,并将数据写入csv文件(otdedit.csv)。但是,尽管数据按年份正确过滤,但未延迟交付的值不会被过滤掉。我的问题是,如何筛选出只有延迟交付的行,将其写入csv文件otdedit.csv

import pandas as pd
from datetime import datetime
from datetime import timedelta


PURCHASE_ORDER = 'Material'
DELIVERY_DATE = 'Delivery Date'
DESIRED_DATE = 'Desired Delivery'
DELAYED_DAYS = 'Delayed Days'

df = pd.read_csv('otd.csv', index_col=PURCHASE_ORDER)

df[DELIVERY_DATE] = pd.to_datetime(df[DELIVERY_DATE])
df[DESIRED_DATE] = pd.to_datetime(df[DESIRED_DATE])
df[DELAYED_DAYS] = df[DELIVERY_DATE] - df[DESIRED_DATE]
late_threshold = pd.Timedelta(days=0)
late_deliveries = df[DELAYED_DAYS] > late_threshold
df[late_deliveries].drop([DELIVERY_DATE, DESIRED_DATE], axis=1)



df['Delivery Date'] = pd.to_datetime(df['Delivery Date'], format='%m/%d/%Y')
df['Desired Delivery'] = pd.to_datetime(df['Desired Delivery'], format='%m/%d/%Y')

df2 = df[(df['Delivery Date'].dt.year >= 2018) & (df['Delivery Date'].dt.year <= 2018)]
df2['Diff Deliv Date'] = df2['Delivery Date'] - df2['Desired Delivery']




df2.to_csv('otdedit.csv', sep=',')
线路

df[late_deliveries].drop([DELIVERY_DATE, DESIRED_DATE], axis=1)
正在将视图的副本创建到原始数据框中,并删除给定的列,但是您没有将此副本分配给任何对象。原始数据帧
df
不变

创建df2后,您可以做的是:

df2 = df2[df2[DELAYED_DAYS] > late_threshold]
df2.drop([DELIVERY_DATE, DESIRED_DATE], axis=1, inplace=True)
线路

df[late_deliveries].drop([DELIVERY_DATE, DESIRED_DATE], axis=1)
正在将视图的副本创建到原始数据框中,并删除给定的列,但是您没有将此副本分配给任何对象。原始数据帧
df
不变

创建df2后,您可以做的是:

df2 = df2[df2[DELAYED_DAYS] > late_threshold]
df2.drop([DELIVERY_DATE, DESIRED_DATE], axis=1, inplace=True)

嘿,你能把示例数据作为csv或使用
df2.to_dict()
的输出给我们吗?嘿,你能把示例数据作为csv或使用
df2.to_dict()
的输出给我们吗?