好吧,我已经找了其他类似的问题,但我就是不能让它工作。 1) 我有一个for循环,可以读取多个文件 2) 对于每个文件,我需要它的长度(T) 3) 然后我需要df重复(T)次的值。你知道吗
如果我不使用for循环,那么这个方法很好用,但是通过在循环中使用相同的脚本,我得到的错误是'numpy.ndarray公司'对象不可调用。我相信是因为我在治疗np.重复作为一个函数,但我不知道如何修复它。有什么好的建议吗?你知道吗
result_files = '/Users/result_files'
reservoirs = ['AA','AB', etc.]
for res in reservoirs:
res_files = pd.read_csv('{}/{}_storage.csv'.format(result_files,res), index_col=0, skiprows=1, parse_dates=True)
T = len(res_files)
### Df of number of days per month x length of reservoir's data
df = pd.DataFrame.from_dict(df, orient='index')
df = df.transpose()
df = pd.DataFrame(np.repeat(df.values,T,axis=0))
错误
File "/anaconda3/lib/python3.7/site-packages/pandas/core/frame.py", line 974, in from_dict
if isinstance(list(data.values())[0], (Series, dict)):
TypeError: 'numpy.ndarray' object is not callable
例如,假设我的df有以下值:
df= ( 1.3, 1.5, 1.7)
我的文件长度是3,我的输出应该是这样的
T = 3
[Out]
df= ( 1.3, 1.5, 1.7
1.3, 1.5, 1.7
1.3, 1.5, 1.7. )
如果
data
是一个数据帧,它会产生这个错误,因为value
是一个数组,而不是一个函数。见DF文件:from_dict
期望的是一个字典,它确实有一个values
方法。你知道吗因此,如果
df
被创建为字典,那么您的代码将在第一次迭代中工作,但是当df
是数据帧(从最后一个循环的末尾开始)时,在下一个循环中失败。你知道吗相关问题 更多 >
编程相关推荐