python中axis和value_python – Pandas错误“*** ValueError:长度不匹配:预期的轴有0个元素,新值有……”...

我在访问Pandas DataFrame df中的数据时遇到错误:

ipdb> df.loc[1988,'ATTEND']

*** ValueError: Length mismatch: Expected axis has 0 elements,new values have 1481 elements

1988年和’ATTEND’都在df中:

ipdb> 1988 in df.index

True

ipdb> 'ATTEND' in df.columns

True

我不知道这个错误是什么.有什么想法吗?

提前致谢.

例:

ipdb> df.iloc[21875:21880,277:280]

FUND ATTEND MAATTEND

1988 3 1 4

1988 2 3 0

1988 2 2 2

1988 2 2 7

1988 2 3 2

ipdb> df.loc[1988,new values have 1481 elements

GSSFilename = 'GSS Dataset/GSS7212_R2_copy.sav'

data = srw.SavReader(pathToData + GSSFilename)

df = pd.DataFrame(data.all(),index=data[:,0],columns=ALL_VARIABLE_NAMES)

with data:

data = np.array(data.all())

更新:

我认为这个问题是由两个不同的Python实例访问同一个.sav文件引起的.

这个错误是因为你的表头 `header` 和原始数据的列数不匹配导致的。根据错误信息,预期axis)只有一个元素,而新值有五个元素。 如果你的原始数据已经有了一些列,你可以尝试使用以下代码来动态添加表头: ```python import os import pandas as pd output_dir = 'output' header = ['Year', 'Mon', 'Day', 'PRE'] for file in os.listdir(output_dir): if file.endswith('.xlsx'): file_path = os.path.join(output_dir, file) df = pd.read_excel(file_path) existing_columns = list(df.columns) new_columns = header + existing_columns df = df.reindex(columns=new_columns) df.to_excel(file_path, index=False) ``` 上述代码,我们首先读取每个 Excel 文件,获取原始数据的列名。然后,我们将新的表头与原始列名合并为一个新的列表 `new_columns`。接下来,我们使用 `reindex()` 方法重新排列数据框的列,将新增的表头添加到数据框。最后,我们将更新后的数据框重新保存到原始的 Excel 文件。 如果你的原始数据没有列名,你可以尝试使用以下代码将表头添加到空数据框: ```python import os import pandas as pd output_dir = 'output' header = ['Year', 'Mon', 'Day', 'PRE'] for file in os.listdir(output_dir): if file.endswith('.xlsx'): file_path = os.path.join(output_dir, file) df = pd.DataFrame(columns=header) df.to_excel(file_path, index=False) ``` 上述代码,我们创建一个空的数据框,并指定列名为 `header`。然后,我们将这个数据框保存为一个新的 Excel 文件,覆盖原始的文件。这样就可以将表头添加到原始数据了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值