我正在尝试使用枢轴和旋转功能重塑此文件,但没有任何成功。
每个用户都有两个tiestamps,一个在19h,第二个在22h,每个用户有3个变量,每个变量有8个索引
文件样本:
DATA_STAMP;ID;VARIABLES;INDEX;VALUE
2018-02-19 19:15:25;6550692;count1;3;230993
2018-02-19 19:15:25;6550692;count1;2;0
2018-02-19 19:15:25;6550692;count1;1;34513980
2018-02-19 19:15:25;6550692;count1;0;1500517
2018-02-19 19:15:25;6550692;count1;7;0
2018-02-19 19:15:25;6550692;count1;6;14958246
2018-02-19 19:15:25;6550692;count1;5;0
2018-02-19 19:15:25;6550692;count1;4;156
2018-02-19 19:15:25;6549986;count1;3;5047
2018-02-19 19:15:25;6549986;count1;2;0
2018-02-19 19:15:25;6549986;count1;1;1016836
2018-02-19 19:15:25;6549986;count1;0;265705
2018-02-19 19:15:25;6549986;count1;7;0
2018-02-19 19:15:25;6549986;count1;6;18661246
2018-02-19 19:15:25;6549986;count1;5;0
2018-02-19 19:15:25;6549986;count1;4;0
2018-02-19 19:15:25;6549456;count1;7;0
2018-02-19 19:15:25;6549456;count1;5;164663
2018-02-19 19:15:25;6549456;count1;6;4640344
2018-02-19 19:15:25;6550692;count2;3;230993
2018-02-19 19:15:25;6550692;count2;2;0
2018-02-19 19:15:25;6550692;count2;1;34513980
2018-02-19 19:15:25;6550692;count2;0;1500517
2018-02-19 19:15:25;6550692;count2;7;0
2018-02-19 19:15:25;6550692;count2;6;14958246
2018-02-19 19:15:25;6550692;count2;5;0
2018-02-19 19:15:25;6550692;count2;4;156
2018-02-19 19:15:25;6549986;count2;3;5047
2018-02-19 19:15:25;6549986;count2;2;0
2018-02-19 19:15:25;6549986;count2;1;1016836
2018-02-19 19:15:25;6549986;count2;0;265705
2018-02-19 19:15:25;6549986;count2;7;0
2018-02-19 19:15:25;6549986;count2;6;18661246
2018-02-19 19:15:25;6549986;count2;5;0
2018-02-19 19:15:25;6549986;count2;4;0
2018-02-19 19:15:25;6549456;count2;7;0
2018-02-19 19:15:25;6549456;count2;5;164663
2018-02-19 19:15:25;6549456;count2;6;4640344
2018-02-19 19:15:25;6550692;count2;3;230993
2018-02-19 19:15:25;6550692;count3;2;0
2018-02-19 19:15:25;6550692;count3;1;34513980
2018-02-19 19:15:25;6550692;count3;0;1500517
2018-02-19 19:15:25;6550692;count3;7;0
2018-02-19 19:15:25;6550692;count3;6;14958246
2018-02-19 19:15:25;6550692;count3;5;0
2018-02-19 19:15:25;6550692;count3;4;156
2018-02-19 19:15:25;6549986;count3;3;5047
2018-02-19 19:15:25;6549986;count3;2;0
2018-02-19 19:15:25;6549986;count3;1;1016836
2018-02-19 19:15:25;6549986;count3;0;265705
2018-02-19 19:15:25;6549986;count3;7;0
2018-02-19 19:15:25;6549986;count3;6;18661246
2018-02-19 19:15:25;6549986;count3;5;0
2018-02-19 19:15:25;6549986;count3;4;0
2018-02-19 19:15:25;6549456;count3;7;0
2018-02-19 19:15:25;6549456;count3;5;164663
2018-02-19 19:15:25;6549456;count3;6;4640344
2018-02-19 22:15:25;6550692;count1;3;230993
2018-02-19 22:15:25;6550692;count1;2;0
2018-02-19 22:15:25;6550692;count1;1;34513980
2018-02-19 22:15:25;6550692;count1;0;1500517
2018-02-19 22:15:25;6550692;count1;7;0
2018-02-19 22:15:25;6550692;count1;6;14958246
2018-02-19 22:15:25;6550692;count1;5;0
2018-02-19 22:15:25;6550692;count1;4;156
2018-02-19 22:15:25;6549986;count1;3;5047
2018-02-19 22:15:25;6549986;count1;2;0
2018-02-19 22:15:25;6549986;count1;1;1016836
2018-02-19 22:15:25;6549986;count1;0;265705
2018-02-19 22:15:25;6549986;count1;7;0
2018-02-19 22:15:25;6549986;count1;6;18661246
2018-02-19 22:15:25;6549986;count1;5;0
2018-02-19 22:15:25;6549986;count1;4;0
2018-02-19 22:15:25;6549456;count1;7;0
2018-02-19 22:15:25;6549456;count1;5;164663
2018-02-19 22:15:25;6549456;count1;6;4640344
2018-02-19 22:15:25;6550692;count2;3;230993
2018-02-19 22:15:25;6550692;count2;2;0
2018-02-19 22:15:25;6550692;count2;1;34513980
2018-02-19 22:15:25;6550692;count2;0;1500517
2018-02-19 22:15:25;6550692;count2;7;0
2018-02-19 22:15:25;6550692;count2;6;14958246
2018-02-19 22:15:25;6550692;count2;5;0
2018-02-19 22:15:25;6550692;count2;4;156
2018-02-19 22:15:25;6549986;count2;3;5047
2018-02-19 22:15:25;6549986;count2;2;0
2018-02-19 22:15:25;6549986;count2;1;1016836
2018-02-19 22:15:25;6549986;count2;0;265705
2018-02-19 22:15:25;6549986;count2;7;0
2018-02-19 22:15:25;6549986;count2;6;18661246
2018-02-19 22:15:25;6549986;count2;5;0
2018-02-19 22:15:25;6549986;count2;4;0
2018-02-19 22:15:25;6549456;count2;7;0
2018-02-19 22:15:25;6549456;count2;5;164663
2018-02-19 22:15:25;6549456;count2;6;4640344
2018-02-19 22:15:25;6550692;count2;3;230993
2018-02-19 22:15:25;6550692;count3;2;0
2018-02-19 22:15:25;6550692;count3;1;34513980
2018-02-19 22:15:25;6550692;count3;0;1500517
2018-02-19 22:15:25;6550692;count3;7;0
2018-02-19 22:15:25;6550692;count3;6;14958246
2018-02-19 22:15:25;6550692;count3;5;0
2018-02-19 22:15:25;6550692;count3;4;156
2018-02-19 22:15:25;6549986;count3;3;5047
2018-02-19 22:15:25;6549986;count3;2;0
2018-02-19 22:15:25;6549986;count3;1;1016836
2018-02-19 22:15:25;6549986;count3;0;265705
2018-02-19 22:15:25;6549986;count3;7;0
2018-02-19 22:15:25;6549986;count3;6;18661246
2018-02-19 22:15:25;6549986;count3;5;0
2018-02-19 22:15:25;6549986;count3;4;0
2018-02-19 22:15:25;6549456;count3;7;0
2018-02-19 22:15:25;6549456;count3;5;164663
2018-02-19 22:15:25;6549456;count3;6;4640344
我想要的是什么:
ID; INDEX; Count1_19,Cou2_19_count3_19,count1_22,count2_22,count3_22
对于每个ID.INDEX
重塑可能吗?任何其他解决方案谢谢
答案 0 :(得分:1)
首先,我认为您的测试数据存在错误。如果我们根据您的需要计算您的数据,您将看到大多数值的计数为1,但是您有两个值为2的值,接下来的两个值没有。
VARIABLES count1 count2 count3
hour 19 22 19 22 19 22
ID INDEX
6549456 5 1.0 1.0 1.0 1.0 1.0 1.0
6 1.0 1.0 1.0 1.0 1.0 1.0
7 1.0 1.0 1.0 1.0 1.0 1.0
6549986 0 1.0 1.0 1.0 1.0 1.0 1.0
1 1.0 1.0 1.0 1.0 1.0 1.0
2 1.0 1.0 1.0 1.0 1.0 1.0
3 1.0 1.0 1.0 1.0 1.0 1.0
4 1.0 1.0 1.0 1.0 1.0 1.0
5 1.0 1.0 1.0 1.0 1.0 1.0
6 1.0 1.0 1.0 1.0 1.0 1.0
7 1.0 1.0 1.0 1.0 1.0 1.0
6550692 0 1.0 1.0 1.0 1.0 1.0 1.0
1 1.0 1.0 1.0 1.0 1.0 1.0
2 1.0 1.0 1.0 1.0 1.0 1.0
3 1.0 1.0 2.0 2.0 NaN NaN
4 1.0 1.0 1.0 1.0 1.0 1.0
5 1.0 1.0 1.0 1.0 1.0 1.0
6 1.0 1.0 1.0 1.0 1.0 1.0
7 1.0 1.0 1.0 1.0 1.0 1.0
但是,我们仍然可以使用某种具有两个值的地点的聚合来重塑您的数据。
df_out = df.groupby(['ID','INDEX','VARIABLES','hour'])['VALUE'].mean().unstack([-2,-1])
df_out.columns = df_out.columns.map('{0[0]}_{0[1]}'.format)
print(df_out.reset_index())
输出:
ID INDEX count1_19 count1_22 count2_19 count2_22 count3_19 count3_22
0 6549456 5 164663.0 164663.0 164663.0 164663.0 164663.0 164663.0
1 6549456 6 4640344.0 4640344.0 4640344.0 4640344.0 4640344.0 4640344.0
2 6549456 7 0.0 0.0 0.0 0.0 0.0 0.0
3 6549986 0 265705.0 265705.0 265705.0 265705.0 265705.0 265705.0
4 6549986 1 1016836.0 1016836.0 1016836.0 1016836.0 1016836.0 1016836.0
5 6549986 2 0.0 0.0 0.0 0.0 0.0 0.0
6 6549986 3 5047.0 5047.0 5047.0 5047.0 5047.0 5047.0
7 6549986 4 0.0 0.0 0.0 0.0 0.0 0.0
8 6549986 5 0.0 0.0 0.0 0.0 0.0 0.0
9 6549986 6 18661246.0 18661246.0 18661246.0 18661246.0 18661246.0 18661246.0
10 6549986 7 0.0 0.0 0.0 0.0 0.0 0.0
11 6550692 0 1500517.0 1500517.0 1500517.0 1500517.0 1500517.0 1500517.0
12 6550692 1 34513980.0 34513980.0 34513980.0 34513980.0 34513980.0 34513980.0
13 6550692 2 0.0 0.0 0.0 0.0 0.0 0.0
14 6550692 3 230993.0 230993.0 230993.0 230993.0 NaN NaN
15 6550692 4 156.0 156.0 156.0 156.0 156.0 156.0
16 6550692 5 0.0 0.0 0.0 0.0 0.0 0.0
17 6550692 6 14958246.0 14958246.0 14958246.0 14958246.0 14958246.0 14958246.0
18 6550692 7 0.0 0.0 0.0 0.0 0.0 0.0
答案 1 :(得分:0)
你能检查一下这是不是你想要的吗?
import pandas as pd
df = pd.read_csv('file.csv', sep=';', parse_dates=[0], index_col=0)
df.groupby(['ID', 'INDEX'])['VARIABLES'].value_counts().unstack()
重读你的帖子,我想你想要这个:
df.groupby(['ID', 'INDEX', df.index.hour])['VARIABLES'].value_counts().unstack().unstack()