【问题标题】:Find value in row and update other row在行中查找值并更新其他行
【发布时间】:2023-03-21 11:25:01
【问题描述】:

我正在使用具有时间列的数据集。我想查找某个时间是否存在或未过期'14:26:00' 并使用标签更新values 行,如果这个时间存在与否,假设为 1。现在在 30 秒内生成了大约 3500 个数据样本,因此需要一种使用最少代码的高效方法。

这是我尝试过的,代码版本略有不同,还有一些没有用。

df = pd.read_csv('file.csv')

df.loc[df['time'].str.contains('14:26:00'), 'value' = "1"]



Data Sample [ file.csv ]
  cOne, cTwo, cThree, cFour, cFive, cSix, cSeven, time
0, 5.73, 33.17, 6.49, 8.09, 0.000, 0.000, 0.000, 09:48:32.798
1, 8.75, 223.76, 3.77, 11.83, 0.000, 0.000, 0.000, 09:48:32.799
2, 2.09, 73.88, -3.89, 10.23, 0.000, 0.000, 0.000, 09:48:32.800
3, 3.38, -114.34, 7.84, 12.79, 0.000, 0.000, 0.000, 09:48:32.827
4, 1.46, -97.70, 9.72, 7.68, 0.000, 0.000, 0.000, 09:48:32.828
5, 5.22, -39.64, 9.90, 11.69, 0.000, 0.000, 0.000, 09:48:32.829
6, 4.85, -72.94, -0.88, 7.55, 0.000, 0.000, 0.000, 09:48:32.830
7, 2.82, 16.36, -9.63, 8.98, 0.000, 0.000, 0.000, 09:48:32.857
8, 1.15, 77.99, 10.60, 10.34, 0.000, 0.000, 0.000, 09:48:32.857
9, 5.24, 35.94, 3.32, 8.07, 0.000, 0.000, 0.000, 09:48:32.859
10, -2.77, 49.23, 6.48, 4.68, 0.000, 0.000, 0.000, 09:48:32.859

【问题讨论】:

  • 那不是有效的python代码,如果没有看到输入文件的样本就不可能说什么。
  • 如果您假设我在这种情况下导入了 pandas,则它是有效的。我的问题是如何真正完成我上面提到的事情;我不会用我在过去 45 分钟内尝试的一切来污染帖子,因为这会非常分散注意力。我会用数据样本更新我的问题,但如果它让其他人更容易。
  • 我指的是你从非右括号中得到的语法错误

标签: python pandas numpy


【解决方案1】:

在您的代码范围内提供 astype int,布尔值可以转换为 int

         date
0   2016-02-08 12:26:00
1   2016-02-08 12:56:00
2   2016-02-08 13:26:00
3   2016-02-08 13:56:00
4   2016-02-08 14:26:00
5   2016-02-08 14:56:00

df.date.astype(str).str.contains('14:26:00').astype(int)

输出:

0     0
1     0
2     0
3     0
4     1
5     0

“if”条件赋值不同的值

df.date.apply(lambda x:'value' if '14:26:00' in str(x) else 'some')

0      some
1      some
2      some
3      some
4     value
5      some

【讨论】:

  • 我看到打印出来是我想要的,但在这种情况下,你知道我如何将它应用于 if 条件,然后根据该行是否为真创建一个新的数据框吗?
  • 如果我尝试在 if 条件下与布尔值进行比较,我会得到“值错误:系列的真值是 abigious”
  • 是的@travishaycock,只需使用 lambda 函数并通过迭代值并给出您的具体答案,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-09-28
  • 2017-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-12
  • 1970-01-01
相关资源
最近更新 更多