- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 161941 行 × 76 列的大数据 CSV 文件,我从中提取了 161941 行 × 3 列的有用数据。
现在我的数据框看起来是这样的
Extracted Dataframme of size 161941 rows × 3 columns
“bKLR_Touchauswertung”列是周期性数据,看起来是这种形式
"bKLR_Touchauswertung"
7
7
10
10
10
10
10
7
7
0
0
0
0
0
0
0
0
0
0
7
7
10
10
10
10
10
10
7
7
0
0
0
0
0
0
0
0
7
7
10
10
10
10
10
7
7
0
0
0
0
0
0
然后一直重复到最后
我想从中得到的是。
应获取该列中的每组非零值并将其作为新列附加到数据帧中。
可以说,第一组非零值应视为新列“set1”,依此类推。
如果我能得到任何可能的解决方案,那就太好了。谢谢,阿比奈
<小时/>以下是初始数据帧和预期数据帧的更详细示例:
这是我下面的数据框
temp toucha
Timestamp
**185 83 7
191 83 7
197 83 10
. . .
. . .
. . .
2051 83 10**
2057 83 0
2063 83 0
2057 83 0
. . .
. . .
. . .
3000 83 0
**3006 83 7
3012 83 7
3018 83 10
. . .
. . .
. . .
6000 83 10**
6006 83 0
6012 83 0
6018 83 0
. . .
. . .
. . .
8000 83 0
这个序列继续下去,
现在,我需要一个如下所示的数据框
temp toucha set1 set2 ste3.............
Timestamp
**185 83 7 7 0
191 83 7 7 0
197 83 10 10 0
. . . . .
. . . . .
. . . . .
2051 83 10 10 0**
2057 83 0 0 0
2063 83 0 0 0
2057 83 0 0 0
. . . . .
. . . . .
. . . . .
3000 83 0 0 0
**3006 83 7 0 7
3012 83 7 0 7
3018 83 10 0 10
. . . . .
. . . . .
. . . . .
6000 83 10 0 10**
6006 83 0 0 0
6012 83 0 0 0
6018 83 0 0 0
. . . . .
. . . . .
. . . . .
8000 83 0 0 0
最佳答案
如果您可以接受setxx
列的数字不一定是连续的,则可以使用shift来检测0和非0值之间的变化,然后np.split
根据这些更改拆分数据帧索引。
完成此操作后,可以很简单地为每个序列添加一个新的 0 列并复制其中的原始值。但由于 np.split
,使用简单的连续索引会更容易。所以代码可以是:
# use a simple consecutive index
df.reset_index(inplace=True)
# split the indices on transition between null and non null values
subs = np.split(df.index.values,
df[((df.toucha == 0)&(df.toucha.shift() != 0)
|(df.toucha != 0)&(df.toucha.shift() == 0))
].index.values)
# process those sequences
for i, a in enumerate(subs):
# ignore empty or 0 value sequences
if len(a) == 0: continue
if df.toucha[a[0]] == 0: continue
df['set'+str(i)] = 0 # initialize a new column with 0
df.loc[a, 'set'+str(i)] = df.toucha.loc[a] # and copy values
# set the index back
df.set_index('Timestamp', inplace=True)
使用以下示例数据
temp toucha
Timestamp
185 83 7
191 83 7
197 83 10
2051 83 10
2057 83 0
2063 83 0
2057 83 0
3000 83 0
3006 83 7
3012 83 7
3018 83 10
6000 83 10
6006 83 0
6012 83 0
6018 83 0
8000 83 0
它给出:
temp toucha set0 set2
Timestamp
185 83 7 7 0
191 83 7 7 0
197 83 10 10 0
2051 83 10 10 0
2057 83 0 0 0
2063 83 0 0 0
2057 83 0 0 0
3000 83 0 0 0
3006 83 7 0 7
3012 83 7 0 7
3018 83 10 0 10
6000 83 10 0 10
6006 83 0 0 0
6012 83 0 0 0
6018 83 0 0 0
8000 83 0 0 0
关于python - "How to extract periodical data from a single column of the Pandas Dataframe",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56127736/
我写了一个 mdx 脚本来显示 Internet Sales Amount 的周期增长,一切正常。我们正在使用一个界面,您可以在其中放置一个切片器,以便用户可以选择他感兴趣的 date.Calenda
我有一列数据,例如 '1971q1'、'1972q2' 等(年份后跟季度)当我这样做时: print(type(df.Quarterly)) 答案是系列 我需要的是将此列“转换”/转换为真正的 pd.
下面是我要处理的句子。它由前面以两个哈希值 (##2312435) 开头的 ID 以及其余文本组成。我需要一个正则表达式来查找其中包含单词 likely 的句子,并检索整个句子和 ID。 句子: ##
这两条线有什么区别? call apoc.periodic.iterate("MATCH (n:Nodes) return n", "DETACH DELETE n", {batchSize:1000
这个问题在这里已经有了答案: When does Thread.CurrentThread.Join() make sense? (6 个答案) 关闭 9 年前。 有人可以向我解释 Thread.S
我正在尝试用 java.time 替换 org.joda.time.Period。 我们在数据库中存储了以下值。 P1M, P1Y, P1D, PT1H, PT1M 只是解析这个值: Period m
我正在尝试解析 linux dig 的输出使用正则表达式在一次拍摄中执行多项操作。 假设我挖掘主机 mail.yahoo.com : /usr/bin/dig +nocomments +noquest
我正在尝试创建一个匹配以下内容的正则表达式: 一个或多个数字 允许在第一个数字后有 0 到 1 个句点 如果有句号 句点后需要 1 - 2 位数字 这是我目前使用的正则表达式,它并不适用于所有情况:
这是我的代码。我想绘制美国东部夏令时9:30-10点的最高点和最低点。我破解了这个代码,但我搞不清时间了。只有当我将其设置为0800-0900时才有效,这没有任何意义。如果我把它设置为0930-100
我正在制作一个仅用于学习目的的应用程序。我试图计算两个日期之间的差异 LocalDate today = LocalDate.now(); LocalDate localHoudbaarheid =
我正在使用 SEO 友好的 URL,我可以通过 ASP.NET 处理其中的大部分,通过将 aspnet_isapi.dll 映射到所有 URL。 (我在 IIS 中设置了一个处理程序映射,它对所有路径
我准备了以下数据 Timestamp Weighted Value SumVal Group 1 1600 800 1 2
为什么结果为periodBetween.Days和 substracted.Days不同的? 我可以看到一个 periodBetween.Months是 0 和 substracted.Months是
我有生日和第二个 LocalDate.now()我使用 Periof 打印这个 Period test = Period.between(dateofbirth,LocalDa
我使用 cocoa 在 Mac 上开发了一个应用程序。我需要将 cmd + period(.) 键盘事件作为我设计的命令来处理。但现在 cmd + period(.) 键盘事件没有像我预期的那样得到很
我有4000个观测值的数据,所以这是head(both): kön gdk age fbkurs pers stterm 1 man
我有一个包含特定类元素 vector 的类。主要思想是根据序列的一个周期(elems_)和周期数(nperiod_)生成元素的周期性序列,因此我不需要存储所有元素,而只需存储一个周期。 class P
我正在尝试添加句点“。”以及变量的后缀“-on”(下面第 4 行): function globalProducts(cat, self){ $("div.info").hide();
例如: requests.get() 是一个带有句点的函数。我如何制作自己的函数,例如: def foo(): return 'bar' 并像这样调用该函数: x.foo() 不是这样的: f
我尝试使用java.time.Period,结果与我手动计算的结果相差了三天。这里奇怪的是,当我将时间段分为两个时间段时,结果与我的手动计算相符。 第二种方法就像我手动计算周期一样。 我是不是漏掉了什
我是一名优秀的程序员,十分优秀!