限制数据帧字符长度

2024-10-03 23:21:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个旧的Fortran程序,可以读入.dat文件。我使用python处理一些文本文件,以便它们符合Fortran程序的严格输入风格。在

我首先导入文本文件并将其转换为数据帧。现在我需要限制每列可以容纳的字符数。例如,第一列有9个字符,第二列有5个字符,以此类推。 此外,在dataframe的一行字符数少于列限制的情况下,我需要填充它,以便它满足限制。例如,列的长度限制为5个字符,但第n行包含的值为15,新值将需要为xxx15

我想做的可能吗?有人能帮忙吗? 谢谢:D


Tags: 文件数据程序dataframe风格情况字符dat
1条回答
网友
1楼 · 发布于 2024-10-03 23:21:09

当然,所以首先编写一个函数,它将接受一个字符串并对其进行编辑,以满足列长度的要求

def char_len(x, fixed_n):
    '''set string x to fixed_n character, prepend with 'xxx' if short'''
    if len(x) > fixed_n: 
        return x[:fixed_n] 
    elif len(x) < fixed_n: 
        return 'x' * (fixed_n - len(x)) + x 
    return x 

然后将该函数应用于dataframe的每一列,将所需的字符长度作为第二个参数传递给char_len函数

^{pr2}$

这假设您的列都是字符串。如果不只是使用.astype(str)强制它们

相关问题 更多 >