Length of values (232) does not match length of index (1160)上面代码运行之后,df[f'd{i+1}'] = new_col这里报错这个是咋回事
时间: 2023-12-15 16:06:29 浏览: 116
Recursive Formula for the Moments of Queue Length in the M/M/1 Queue
这个错误是由于新列的长度与 DataFrame 的索引长度不匹配导致的。这可能是因为原始的 Excel 文件中存在空白行或者你的需求中提到的数组长度与实际数据不一致。
为了解决这个问题,你可以在添加新列之前,先创建一个与原始 DataFrame 相同长度的空白列。这样可以确保新列的长度与索引长度一致。修改代码如下:
```python
import pandas as pd
import numpy as np
# 读取原始的 Excel 文件
df = pd.read_excel('input.xlsx')
# 获取第一列、第二列和第三列的数据
col1 = df.iloc[:, 0].values
col2 = df.iloc[:, 1].values
col3 = df.iloc[:, 2].values
# 创建空白列
for i in range(5):
df[f'd{i+1}'] = np.nan
# 将第三列拆分成多个数组,并将每个数组的前五个值放入新的列中
for i in range(5):
new_col = col3[i::5]
df.loc[:len(new_col)-1, f'd{i+1}'] = new_col
# 将结果保存到新的 Excel 文件
df.to_excel('output.xlsx', index=False)
```
这样修改后,程序会先创建与原始 DataFrame 相同长度的空白列,然后再将拆分后的数组插入到相应的位置。这样就避免了长度不匹配的错误。
希望这次修改能够解决问题。如果还有其他疑问,请随时提出。
阅读全文