首页 > 解决方案 > 熊猫设置单元格长度

问题描述

我有时想读取输出数据帧并希望它缩进。例如,如果我有数据框

A     |B     |C     |D     |     E
abc|def|ghij|k|ooo
lorem|ipsumjkl|d|amet|hel

我有一个我想申请的长度列表alist = [5,8,4,1,3]

A    |B       |C   |D|E
abc  |def     |ghij|k|ooo
lorem|ipsumjkl|dol |a|hel

我想出这个,

df.applymap(lambda x: str(x).ljust(elem) for elem in alist).to_csv("report.csv", sep="|", index=False)

但我得到这个错误,

TypeError: ("'generator' object is not callable", 'occured at index xxxx')

如何输出具有给定长度列表的 csv 文件?

标签: pythonpandaslambda

解决方案


你可以尝试这样的事情:

for i,colum in enumerate(list(df.columns)):

    df[colum]=df[colum].apply(lambda x: str(x).ljust(alist[i]))

df.to_csv("report.csv", sep="|", index=False)

或者,你可以试试这个:

def returncolumindex(val):
    i, j = np.where(df.values == val)
    return j[0]

df=df.applymap(lambda x: str(x).ljust(alist[returncolumindex(x)]))

推荐阅读