result_df = pd.DataFrame() result_df['start_date'] = [self.start_date] result_df['end_date'] = [self.end_date] result_df['H_div_pct'] = div_pct_list result_df['N_div_pct'] = result_df['H_div_pct'] * 1-0.1报错ValueError: Length of values (4) does not match length of index (1)
时间: 2024-04-13 15:29:46 浏览: 64
python中时间转换datetime和pd.to_datetime详析
这个错误是因为你在创建 `result_df` DataFrame 时,给每列赋值的列表长度与 DataFrame 的索引长度不匹配。根据你提供的代码,`result_df` 的索引长度为1,但你尝试给 `H_div_pct` 和 `N_div_pct` 列赋值长度为4的列表。
要解决这个问题,确保你给每列赋值的列表的长度与索引长度相匹配。你可以使用以下方式修改代码:
```python
result_df = pd.DataFrame()
result_df['start_date'] = [self.start_date]
result_df['end_date'] = [self.end_date]
result_df['H_div_pct'] = div_pct_list[:1] # 只取列表的第一个元素
result_df['N_div_pct'] = result_df['H_div_pct'] * 0.9 # 乘以0.9,我猜测你的意图是这样
```
这样,你就只给每列赋值一个元素,与索引长度相匹配,就不会再出现长度不匹配的错误了。如果你有多个元素需要赋值给这两列,确保列表的长度与索引长度相同即可。
阅读全文