pandas - 替换数据框中的列会引发 ValueError: Columns must be the same length as key
问题描述
有使用replace方法的描述:
[https://www.geeksforgeeks.org/replace-values-of-a-dataframe-with-the-value-of-another-dataframe-in-pandas/][1]
不幸的是,在用另一个数据框的列替换数据框的列时出现错误。
import pandas as pd
# initialise data of lists.
colors = {
"first_set": ["99", "88", "77", "66", "55", "44", "33", "22"],
"second_set": ["1", "2", "3", "4", "5", "6", "7", "8"],
}
color = {
"first_set": ["a", "b", "c", "d", "e", "f", "g", "h"],
"second_set": ["VI", "IN", "BL", "GR", "YE", "OR", "RE", "WI"],
}
# Calling DataFrame constructor on list
df = pd.DataFrame(colors, columns=["first_set", "second_set"])
df1 = pd.DataFrame(color, columns=["first_set", "second_set"])
# Display the Output
display(df)
display(df1)
这是一个有错误的代码:
# replace column of one DataFrame with
# the column of another DataFrame
ser1 = df1["first_set"]
ser2 = df["second_set"]
print(ser1)
print(ser2)
df["second_set"] = df1.replace(to_replace=ser1, value=ser2)
-------------------------------------------------- ------------------------- ValueError Traceback(最近一次调用最后)~\AppData\Local\Temp/ipykernel_28648/2104797653.py in 5 print( ser1) 6 print(ser2) ----> 7 df['second_set'] = df1.replace(to_replace=ser1,value=ser2)
~.virtualenvs\01_python_packages-rD-UbwAe\lib\site-packages\pandas\core\frame.py in setitem (self, key, value) 3600
self._setitem_array(key, value) 3601 elif isinstance(value, DataFrame): -> 3602 self._set_item_frame_value(key, value) 3603 elif (3604 is_list_like(value)~.virtualenvs\01_python_packages-rD-UbwAe\lib\site-packages\pandas\core\frame.py in _set_item_frame_value(self, key, value) 3727
len_cols = 1 if is_scalar(cols) else len(cols) 3728 if len_cols ! = len(value.columns): -> 3729 raise ValueError("Columns must be same length as key") 3730 3731 # 对齐右侧列 if self.columnsValueError:列的长度必须与键的长度相同
解决方案
推荐阅读
- sql - SQL查询以选择具有改变粒度的记录
- python - Python YYYY-MM-DD hh:mm:ss.fff-zz:xx 格式化日期时间问题
- jenkins - 如何将 Jenkins 文件系统列表参数选择值传递给 Execute shell
- python - argparse 处理 bash 命令中的字符串和空格
- mysql - 如果该列具有相同的值,则只查询一次记录并获取第一条记录
- json - AvroTypeException:预期的启动联合。获得 VALUE_NUMBER_INT
- .htaccess - 仅当您尝试从特定页面读取文件时,如何才能允许读取文件?
- python - 将颜色校正 opencv 模块示例从 C++ 转换为 python
- node.js - client.on("guildCreate") 在 504 网关超时上运行
- python - XGBoost - early_stopping_rounds 结合清除交叉验证的正确使用