熊猫设定细胞长度

时间:2020-06-14 22:42:06

标签: python pandas lambda

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

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文件?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

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)]))