我有一个巨大的数据文件,看起来像这样。我在“名称”列中只显示了一些参数。我有24个不断重复。
raw=pd.read_csv('example.csv', parse_dates=True, usecols=[0,1,2,3])
raw['Date']=pd.to_datetime(raw['Date']+''+raw['Time'])
raw=raw.drop(['Time'], axis=1)
raw1=raw.pivot(index='Date', columns='Name', values='Value')
我想对此做两件事:
每组的正确日期和时间是为ME_POW_1记录的日期和时间。因此,对于索引0到3,我想用ME_POW_1的数据和时间来更正所有数据的日期和时间,我想对所有数据进行更新。
“名称”列中的名称应该旋转到各个列。所需的输出是:
日期时间FAN_RFB KW_TOTAL ME_POW_1 ME_POW_2 2018-04-08 23:59:56 1 186 8618 8315 2018-04-09 00:00:09 1 185 8467 8350 2018-04-09 00:00:16 1 182 8783 8422 2018-04-09 00:00:28 1 184 8545 8370
我认为第二种可能是使用pd.pivot(index ='date',columns ='Name',values ='Values')。一旦我可以得到类似的日期,那么我可以使用这段代码来获得所需的输出:
>>> import arcpy
>>> arcpy.SelectLayerByAttribute_management("Customers", "NEW_SELECTION", "Year=1989")
<Result 'Customers'>
但我不知道如何完成第一项任务,根据ME_POW_1的日期和时间更改每组的日期。有人可以指导我吗?
答案 0 :(得分:1)
如果为每4行重复let content = null;
if (props.selectedReason.reasonId === 2) {
content = <TextField ... /> :
}
return (
<div className='row'>
<div className='col-xs-12'>{content}</div>
</div>
);
并且每个组包含pattern
行,则解决方案正常工作:
我认为您可以先为ME_POW_1
的{{1}}和parse_dates
列添加参数date
:
time
然后通过过滤datetimes
行获取df=pd.read_csv('example.csv', usecols=[0,1,2,3], parse_dates=[['Date','Time']])
print (df)
Date_Time Name Value
0 2018-04-07 02:34:43 FAN_RFB 1
1 2018-04-08 23:59:58 KW_TOTAL 186
2 2018-04-08 23:59:56 ME_POW_1 8618
3 2018-04-08 23:59:56 ME_POW_2 8315
4 2018-04-07 02:34:43 FAN_RFB 1
5 2018-04-09 00:00:07 KW_TOTAL 185
6 2018-04-09 00:00:09 ME_POW_1 8467
7 2018-04-09 00:00:09 ME_POW_2 8350
8 2018-04-07 02:34:43 FAN_RFB 1
9 2018-04-09 00:00:15 KW_TOTAL 182
10 2018-04-09 00:00:16 ME_POW_1 8783
11 2018-04-09 00:00:16 ME_POW_2 8422
12 2018-04-07 02:34:43 FAN_RFB 1
13 2018-04-09 00:00:26 KW_TOTAL 184
14 2018-04-09 00:00:28 ME_POW_1 8545
15 2018-04-09 00:00:28 ME_POW_2 8370
并按reset_index
创建默认索引:
Date_Time
第一个位置的每个ME_POW_1
行和最后insert
个新列的最后一个数据透视点:
s = df.loc[df['Name'] == 'ME_POW_1', 'Date_Time'].reset_index(drop=True)
print (s)
0 2018-04-08 23:59:56
1 2018-04-09 00:00:09
2 2018-04-09 00:00:16
3 2018-04-09 00:00:28
Name: Date_Time, dtype: datetime64[ns]