在CSV文件中区分大写字母和数字

2024-06-28 11:10:28 发布

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

我有一个很大的csv文件,数字和字母在同一行

我怎样才能在一个新的列中只输入大写字母

CSV有这种格式

1AAOIAppli
2ABEOAbeon
3ABIOARCA
4ABUSArbut
5ACERAcer

...

我想生成一个像这样的新csv

AAOI
ABEO
ABIO
ABUS
ACER
...

在过去的两周里我一直在学习python,对此我感到绝望

谢谢大家


Tags: 文件csv格式字母数字大写字母aceraaoi
1条回答
网友
1楼 · 发布于 2024-06-28 11:10:28

使用pandas

import pandas as pd

# read in the file
df = pd.read_csv('test.csv', header=None)

# .isupper to check a character
# .join to join the letters back into a string
# [:4] to slice the first 4
df['upper'] = df[0].apply(lambda x: ''.join([letter for letter in x if letter.isupper()])[:4])

print(df)

          0 upper
 1AAOIAppli  AAOI
 2ABEOAbeon  ABEO
  3ABIOARCA  ABIO
 4ABUSArbut  ABUS
  5ACERAcer  ACER

# save only upper to a new file
df['upper'].to_csv('new_file.csv', index=False)

如果你想要所有的大写字母而不是前4个

df['upper'] = df[0].apply(lambda x: ''.join([letter for letter in x if letter.isupper()]))

          0     upper
 1AAOIAppli     AAOIA
 2ABEOAbeon     ABEOA
  3ABIOARCA  ABIOARCA
 4ABUSArbut     ABUSA
  5ACERAcer     ACERA

相关问题 更多 >