- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题可能最好用一个例子来解释:
我有:
ID0,ID1,Time,Data0,Data1
1 1 10 'A' 93
1 2 10 'A' 55
1 1 12 'A' 88
1 2 12 'B' 66
2 3 102 'C' 14
2 4 102 'A' 22
2 4 112 'D' 15
2 3 112 'B' 43
我想要什么:
ID0,ID1,Time,Data0,Data1,Data0.2,Data1.2
1 1 10 'A' 93 'A' 55
1 2 10 'A' 55 'A' 93
1 1 12 'A' 88 'B' 66
1 2 12 'B' 66 'A' 88
2 3 102 'C' 14 'A' 22
2 4 102 'A' 22 'C' 14
2 4 112 'D' 15 'B' 43
2 3 112 'B' 43 'D' 15
本质上,每个 ID0 都有 2 个唯一的 ID1。
定期对数据进行采样。
我想通过添加更多列来使原始数据框“更宽”,以便每行包含来自同一时间段的另一个 ID1 的信息。
最佳答案
尝试:
grb = df.groupby(['ID0', 'Time'])
df['Data0.2'] = grb['Data0'].transform(lambda ts: ts[::-1])
df['Data1.2'] = grb['Data1'].transform(lambda ts: ts[::-1])
根据您的陈述,这基本上是在做什么
there are 2 unique ID1s associated with every ID0.
它按['ID0', 'Time']
对数据帧进行分组并反转特定列;如果每个组中恰好有 2 个唯一的 ID1
,则数据框将按其他 ID1
的值进行扩展;
>>> df
ID0 ID1 Time Data0 Data1 Data0.2 Data1.2
0 1 1 10 'A' 93 'A' 55
1 1 2 10 'A' 55 'A' 93
2 1 1 12 'A' 88 'B' 66
3 1 2 12 'B' 66 'A' 88
4 2 3 102 'C' 14 'A' 22
5 2 4 102 'A' 22 'C' 14
6 2 4 112 'D' 15 'B' 43
7 2 3 112 'B' 43 'D' 15
[8 rows x 7 columns]
最终编辑:要将两列一起进行,您可以尝试以下操作;请注意,这里需要 .values
:
>>> grb = df.groupby(['ID0', 'Time'])
>>> df2 = grb['Data0', 'Data1'].transform(lambda obj: obj.values[::-1])
>>> df.join(df2, rsuffix='.2')
关于python - 扩大 Pandas 数据框,类似于 Pivot 或 Stack/Unstack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22298542/
尝试将 pandas DataFrames 从宽格式转换为长格式。 我尝试过 melt() ,使用wide_to_long() (简单的 melt()),但一直与我收到的语法和输出混淆。 我还阅读了
我试过 pivot和 groupby + unstack ,两者都给了我错误。 错误说 "Unstacked DataFrame is too big, causing int32 overflow"
我有一个如下所示的数据框: import pandas as pd df = pd.DataFrame({'type_a': [1,0,0,0,0,1,0,0,0,1],
我正在尝试解开张量,因为我需要一个序列作为 RNN 的输入。我正在使用可变序列长度,这使我无法正确使用 tf.unstack . def MapToSequences(x): # x.get_
我正在尝试通过取消嵌套/取消堆叠 df 列,将包含 value 列、两个日期列( start 和 end )和间隔列( duration )的数据帧 duration 转换为长格式。 library(
我有一个如下所示的数据框 op1 = pd.DataFrame({ 'subject_id':[1,1,1,1,2,2,2,2], 'date' : ['1/1/2017','1/2/2017','1
最初我有 DF,其中 1 列操作用 DatetimeIndex 索引: In [371]: dates 2013-12-29 19:21:00 action1 2013-12-29 19:21:
我在问自己是否有可能取消堆叠多索引数据帧的一层,以便不对返回的数据帧的其余索引进行排序!代码示例: arrays = [["room1", "room1", "room1", "room1", "ro
似乎有很多这方面的内容,但我找不到我需要的东西。我正在使用 unstack() 创建一个可以绘制其中项目的 DataFrame。 启动 DataFrame 示例: Date word
我有一个如下所示的数据框: 名称 值 1 值 2 A 100 101 A 100 102 A 100 103 B 200 201 B 200 202 B 200 203 C 300 301 C 30
有np.stack在 NumPy ,但是否有相反的np.unstack同 tf.unstack ? 最佳答案 遇到这么晚,这里有一个简单得多的答案: def unstack(a, axis=0):
我正在开发一个包含混合类型值(timedeltas 和 int)的 MultiIndex 系列: char 7 a 103 minutes s 6
我使用 groupby 和 sum 创建了以下数据框:- year_month Country 2008-01 Afghanistan 2
我编写了以下函数将数据框的几列转换为数值: def factorizeMany(data, columns): """ Factorize a bunch of columns in a da
我正在尝试拆开两列: cols = res.columns[:31] res[cols] = res[cols].ffill() res = res.set_index(cols + [31])[32
我有这个 Pandas DataFrame: rnd non-rnd first last andrew wood 0 1
这个问题已经有答案了: How to unnest (explode) a column in a pandas DataFrame, into multiple rows (16 个回答) 已关闭
我有一个名为 afplot 的数据框: apple_fplot = apple_f1.groupby(['Year','Domain Category'])['Value'].sum() afplot
我正在尝试将 LSTM 与具有不同时间步长(不同帧数)的输入一起使用。 rnn.static_rnn 的输入应该是一个 tf 序列(不是 tf!)。所以,我应该将我的输入转换为序列。我尝试使用 tf.
我遇到了以下对行和列标题进行排序的问题。 这里是重现这个的方法: X =pd.DataFrame(dict(x=np.random.normal(size=100), y=np.random.norm
我是一名优秀的程序员,十分优秀!