【问题标题】:Python iterate over a float array or listPython 迭代浮点数组或列表
【发布时间】:2020-10-12 03:22:36
【问题描述】:

我有一个 Pandas 数据框,我需要为其中的特定列创建一个函数,该列只有浮点值。我可以检索列并将其转换为列表或数组。但是,一旦我对 Floating 列使用 for 循环迭代,它就不起作用了。有什么办法吗。

batchsize=10
for i in dataset['timeslices4profilerdataprocess50_c0us']:
    for j in range(0,i,batchsize): 
        print(j)


TypeError: 'float' object cannot be interpreted as an integer

我该怎么做

np.linspace() 或 np.arange()

或使用任何选项?范围操作的任何替代方法可以使用浮点数执行?

【问题讨论】:

  • 你的缩进是故意的吗??
  • 您希望对成批的 pandas 行应用函数吗?看到这个SE和这个SE
  • 您可以将range 替换为np.arange(0, i, i/batchsize),它应该可以工作。请记住,i 值不包含在这种情况下。
  • @RunTheGauntlet 这可以工作并打印数组长度上的值,但我需要列中的精确值以针对特定条件进行迭代

标签: python pandas numpy floating-point


【解决方案1】:

我还是不明白你到底想要什么。 你能解释一下吗?

range() 函数只接受整数值。 您传递的“i”是浮点值,这就是您的代码失败的原因。

【讨论】:

  • 请将此作为评论写下来。没有答案。
  • 我想创建一个函数来删除列中某些间隔内的重复值。我的列值不是 int。我也不能轮到
  • 你能举个例子吗?
  • 如果你想遍历值,你不应该使用 range() 函数。将数据类型转换为 str 并且您可以通过 char 迭代它 char
  • ``` def keep_first(column,batchSize): return_list=[] for idx, value in enumerate(column): if (idx+1)%batchSize==1: return_list.append(True ) else: return_list.append(False) return return_list df=pd.DataFrame(list([[1,2],[1,2],[1,2],[1,2],[1,2], [1,6],[1,6],[1,6],[1,6],[1,6],[1,2],[1,2],[1,2]])) df.columns=['a','b'] df['c']=keep_first(df.b.to_list(),5) df=df[df.c==True] ```看看这是否有帮助.
猜你喜欢
  • 1970-01-01
  • 2012-08-07
  • 2020-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多