为了消除测量时的变化,我想在一个特定的范围内编译。你知道吗
例如,我想将列名加在整数的±0.1范围内,并将其赋给整数列。但是,由于形状错误,我无法替换。你知道吗
我认为这是由转换列的类型引起的,但是我应该怎么做呢?你知道吗
谢谢你。你知道吗
import pandas as pd
import numpy as np
df = pd.DataFrame(data= np.arange(0,10000,1).reshape(100,100))
df.columns = np.arange(0,10,0.1)
print(df.head())
df.columns = df.columns.astype(float)
temp = df.columns.values
for n in np.arange(1, 9, 1):
l = n - 0.1
m = n + 0.1
calc_n = temp[np.where((temp >= l) & (temp <= m))]
calc = np.sum(df[df.columns.intersection(calc_n)], axis=1)
n_position = temp[np.where(temp == n)]
df[n_position] = calc.values
ValueError:形状不匹配:形状(100,)的值数组无法广播到形状(1100)的索引结果
ValueError是因为
n_position
是一个数组。所以df[n_position]
给你一个数据帧而不是一个列。你知道吗使用浮点作为索引通常不是一个好主意。在比较浮动时要小心。这行
calc_n = temp[np.where((temp >= l) & (temp <= m))]
并不总是给出准确的结果。你知道吗对于初学者,请尝试:
相关问题 更多 >
编程相关推荐