python - TypeError:尝试在 Pandas 中分配列时,“RangeIndex”对象不可调用
问题描述
我正在运行我认为是 python/pandas 中的简单行,以在将列表列表转换为数据框后尝试重命名列:
df = pd.DataFrame(motif_lists, index=None).transpose().rename(args.plot_labels)
其中这些是每个变量:
print(motif_lists)
[['HIVEP1', 'ZNF443', 'ZNF181', 'ZNF770', 'RORA', 'ZNF571', 'BACH1', 'ZNF235', 'ZNF418', 'ZNF782', 'ZNF141', 'ZNF384', 'ZNF287', 'MAFK', 'ZNF496', 'PRDM6', 'HIVEP1', 'ATOH1', 'NR1I2', 'ZNF487', 'ZNF416', 'ZNF774', 'ZNF324B', 'ZNF787', 'RFX3', 'SREBF1', 'ZNF146', 'RFX5', 'STAT6', 'INSM1', 'TEAD3', 'ZNF519', 'MYCL', 'ZNF441', 'ZBTB1'], ['ATOH1', 'ZNF443', 'ZNF181', 'ZNF770', 'NFKB2', 'ZNF571', 'ZNF18', 'NR1I2', 'MAFK', 'ZNF496', 'GRHL2', 'RORA', 'ZNF235', 'ZNF287', 'ZNF774', 'TFAP2B', 'NFYA', 'HES1', 'ZNF146', 'ZNF93', 'PRDM6', 'RELB', 'ZNF708', 'ZNF141', 'ZNF75D', 'ZNF280A'], ['TBX1', 'NR1I2', 'ZNF443', 'ZNF181', 'ZFP42', 'ZNF770', 'ZNF571', 'ZNF287', 'ZNF235', 'BACH1', 'TGIF1', 'ZNF18', 'ZNF496', 'PRDM6', 'CREB3L1', 'ZNF487', 'KLF1', 'GRHL2', 'ZFP69', 'HES1', 'PBX3', 'ZNF384', 'TBX2', 'SREBF1', 'ZNF778', 'MEIS1', 'ZFX', 'ZNF610', 'ZNF610', 'ZNF774', 'MYCL', 'ZNF75D', 'ZNF519', 'ZNF121', 'TFAP2B', 'ZNF614', 'ZNF146']]
print(type(motif_lists))
<class 'list'>
print(args.plot_labels)
['B2B vs LC2', 'A549 vs B2B', 'A549 vs LC2']
print(type(args.plot_labels))
<class 'list'>
但是在尝试使用以下任一设置列时出现以下错误rename
:
TypeError: 'list' object is not callable
并且以下 whenrename
被替换为函数column
TypeError: 'RangeIndex' object is not callable
我还尝试了一条新线:
df.columns = args(plot_labels)
但得到了同样的错误。对于其他上下文, plot_labels 变量来自 argparse:
optional.add_argument('-l', '--labels', dest='plot_labels', metavar='<PLOT_LABELS>', nargs='+', required=False, type=str)
用户可以在其中指定多个命令行输入变量,这些变量将被设置为列表,但我确实在另一个函数中将其作为列表调用,没有任何问题。
解决方案
您可以args.plot_labels
直接传递给 df 构造函数的索引为
df = pd.DataFrame(motif_lists, index=args.plot_labels).T
或者,如果您想rename
在需要传递映射器(例如字典)后使用axis=1
mapper = dict(zip(range(len(args.plot_labels)), args.plot_labels))
df = pd.DataFrame(motif_lists, index=None).T.rename(mapper, axis=1)
推荐阅读
- android - String.format 本地英文,但数字是阿拉伯文
- c++ - 构造函数和赋值运算符的行为
- python - 查找变量组合以最大化(或最小化)函数
- python-3.x - 如果导入,Python 多进程生成进程会卡住
- list - Flutter - 如何放置列表
进入共享偏好? - java - java不能连接到字符串的结尾
- java - 流已经被操作或关闭,即使在使用供应商之后
- php - laravel paginate 1000 last Record with relationship
- shell - 在shell脚本中为变量分配最新的文件名
- redirect - 为什么我在尝试使用 HAProxy 重定向对安装在 CentOS Docker 容器中的 CRC 的调用时获得“禁止”状态?