python-3.x - Pandas 读取一个文本文件并根据第一个字符将名称分成几列

标签 python-3.x pandas

您好,我期待着看看我们是否可以读取一个文本文件,并根据 pandas 的第一个字符将它们放入单独的列中。

下面是文本文件

$ cat file.txt
AAAAAA
AAAAAA
AAAAAA
AAAAAA
AAAAAA
BBBBBB
BBBBBB
BBBBBB
BBBBBB
BBBBBB
CCCCCC
CCCCCC
CCCCCC
CCCCCC
CCCCCC
DDDDDD
DDDDDD
DDDDDD
DDDDDD
DDDDDD
EEEEEE
EEEEEE
EEEEEE
EEEEEE
EEEEEE
FFFFFF
FFFFFF
FFFFFF
FFFFFF
FFFFFF

期望:

COL_1   COL_2   COL_3   COL_4   COL_5   COL_6
AAAAAA  BBBBBB  CCCCCC  DDDDDD  EEEEEE  FFFFFF
AAAAAA  BBBBBB  CCCCCC  DDDDDD  EEEEEE  FFFFFF
AAAAAA  BBBBBB  CCCCCC  DDDDDD  EEEEEE  FFFFFF
AAAAAA  BBBBBB  CCCCCC  DDDDDD  EEEEEE  FFFFFF
AAAAAA  BBBBBB  CCCCCC  DDDDDD  EEEEEE  FFFFFF

最佳答案

可能不是最好的方法:

# notice the header=None option
df = pd.read_csv('file.txt', header=None)

# extract the first character of the string
df['start'] = df[0].str[0]

# group by the first character of the string
# cumcount gives you the order/rank of the row within its group
df['idx'] = df.groupby('start').cumcount()

# pivot - search StackOverflow for 47152691
df.pivot(index='idx', columns='start', values=0)

输出:

start       A       B       C       D       E       F
idx                                                  
0      AAAAAA  BBBBBB  CCCCCC  DDDDDD  EEEEEE  FFFFFF
1      AAAAAA  BBBBBB  CCCCCC  DDDDDD  EEEEEE  FFFFFF
2      AAAAAA  BBBBBB  CCCCCC  DDDDDD  EEEEEE  FFFFFF
3      AAAAAA  BBBBBB  CCCCCC  DDDDDD  EEEEEE  FFFFFF
4      AAAAAA  BBBBBB  CCCCCC  DDDDDD  EEEEEE  FFFFFF

关于python-3.x - Pandas 读取一个文本文件并根据第一个字符将名称分成几列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56905959/

相关文章:

python - 我将如何进行自定义 Pandas 数据框合并?

python - 将列值分组到字典中

Python:如何将不同数据帧中具有相同名称的列彼此相邻放置?

python - 从函数/类返回后如何使列表为空

Python类抛出: can't convert 'list' object to str implicitl

python - 如何进行 dryscrape session ?

Python GoogleSearch 模块错误 : "TypeError: search() got an unexpected keyword argument ' tld' "

python - 列表换行符

python - 按多列将 csv 文件拆分为 Pandas 数据框

python - Matplotlib sharex 对具有不同 x 值的数据?