我有一个有4列的数据帧,第一列等于计数器,计数器的值为十六进制。
counter frequency resistance phase
0 15000.000000 698.617126 -0.745298
1 16000.000000 647.001708 -0.269421
2 17000.000000 649.572265 -0.097540
3 18000.000000 665.282775 0.008724
4 19000.000000 690.836975 -0.011101
5 20000.000000 698.051025 -0.093241
6 21000.000000 737.854003 -0.182556
7 22000.000000 648.586792 -0.125149
8 23000.000000 643.014160 -0.172503
9 24000.000000 634.954223 -0.126519
a 25000.000000 631.901733 -0.122870
b 26000.000000 629.401123 -0.123728
c 27000.000000 629.442016 -0.156490
| counter | sampling frequency | time. |
| --------| ------------------ |---------|
| 0 | - |t0=0 |
| 1 | 1 |t1=t0+sf |
| 2 | 1 |t2=t1+sf |
| 3 | 1 |t3=t2+sf |
时间列是添加到原始数据帧中的新列。我想在x轴上绘制时间,在y轴上绘制频率、电阻和相位。
因为为了计算任何行的值,您需要计算前一行的值。对于这个问题,您可能必须使用for循环。
对于一个恒定的频率,你可以预先计算,不需要在数据框中操作:
sampling_freq = 1
df['time'] = [sampling_freq * i for i in range(len(df))]
如果你需要在dataframe中操作(假设频率可能在某个点改变),为了根据行号和列名调用每个单元格,你可以这样建议。对行和列都使用数字,语法会容易得多,但我更喜欢用< code >“time”而不是< code>2。
df['time'] = np.zeros(len(df))
for i in range(1, len(df)):
df.iloc[i, df.columns.get_loc('time')] = df.iloc[i-1, df.columns.get_loc('time')] + df.iloc[i, df.columns.get_loc('sampling frequency')]
或者,重置索引,以便可以遍历连续的数字:
df['time'] = np.zeros(len(df))
df = df.reset_index()
for i in range(1, len(df)):
df.loc[i, 'time'] = df.loc[i-1, 'time'] + df.loc[i, 'sampling frequency']
df = df.set_index('counter')
请注意,由于您的采样频率在整个实验中可能是恒定的,因此您可以将其简化为:
sampling_freq = 1
df['time'] = np.zeros(len(df))
for i in range(1,len(df)):
df.iloc[i, df.columns.get_loc('time')] = df.iloc[i-1, df.columns.get_loc('time')] + sampling_freq
但这并不会比第一个例子中创建时间序列更好。
问题内容: 我想更新表中列的前10个值。我有三栏;,和。要获得前10个值,我可以使用以下方法: 我想做的是根据的大小将值设置为一系列。这可以在PostgreSQL中完成吗? 问题答案: WITH cte AS ( SELECT id, row_number() OVER (ORDER BY account DESC NULLS LAST) AS rn FROM accountrecords ORD
问题内容: 这与其他问题类似,但是在每个数据库的实现中似乎有所不同。我正在使用postgres,似乎不存在类似的东西。 这是我要工作的: 我知道 为什么 不行,但是我似乎找不到适合Postgres的合适解决方案。我希望的值是1到10之间的随机数, 每 行不同。 问题答案: 我认为Postgres可能会优化子查询。这不行吗?
我试图用Python复制我的Stata代码,我被指向熊猫的方向。然而,我很难思考如何处理数据。 假设我想遍历列标题“ID”中的所有值。如果该ID与一个特定的数字匹配,那么我想更改两个相应的值FirstName和LastName。 在Stata,它看起来像这样: 因此,这将替换 FirstName 中与 ID == 103 到 Matt 的值对应的所有值。 在熊猫身上,我正在尝试这样的东西 不知道该
问题内容: 我想更新一个字典中的值,该值只能由字典中的另一个值来标识。也就是说,鉴于此输入: 我想将伴随格式更改为“ csv”: 我发现这可行: 但这似乎很冗长,所以我想知道是否有一种更优雅的方式来表达这一点。jq似乎缺少某种表达式选择器,等效于xpath。 (当我开始这个问题时,我发现了,所以并没有我想的那么糟。) 问题答案: 您要寻找的是一项复杂的任务: 也许不短,但是根据要求它更优雅。请参阅
假设我有一个名为mytable的表,它看起来像这样: 我希望能够更新所有的记录在p6列添加到39但只为行有不同的p2值。换句话说,结果表应该如下所示: 我将p6行着色为黄色,以显示它不应该移动的地方,因为所有的p2单元格都是灰色的,它们的值是相同的。绿色的p6行应该会增长,因为p2也会增长,所以我把+39加到所有的行上。示例中的最后第13行再次为黄色,因为12行上的p2=13行上的p2。 在Gor
本文向大家介绍使用MySQL WHERE子句中的多个值进行更新,包括了使用MySQL WHERE子句中的多个值进行更新的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 这是使用WHERE子句中的多个值更新的查询- 让我们再次检查表记录- 这将产生以下输出-