【问题标题】:Separating Uppercase From Numbers In CSV File将大写字母与 CSV 文件中的数字分开
【发布时间】:2020-04-22 14:59:49
【问题描述】:

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

如何才能在新列中只输入大写字母?

CSV 有这种格式

1AAOIAppli
2ABEOAbeon
3ABIOARCA
4ABUSArbut
5ACERAcer

...

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

AAOI
ABEO
ABIO
ABUS
ACER
...

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

谢谢大家

【问题讨论】:

  • 您似乎不希望只获取大写字母,而是希望获取逗号后的四个字符。您可以使用split 方法,首先获取逗号前后的内容,其次只需使用[:4] 获取前四个字符。
  • 到目前为止你做了什么?你得到什么结果?你做了什么来调试你的代码?
  • 你好 Rajesh,谢谢你的回复,我不能先申请拆分,因为数字没有用逗号分隔。我是否必须使用某些东西来仅识别其中的文本而不识别数字?
  • What should I do when someone answers my question? 人们倾向于花大量时间彻底回答问题。如果解决方案回答了您的问题,请检查,如果没有解决问题,请发表评论。检查位于答案左上角的向上/向下箭头下方。

标签: python string csv uppercase


【解决方案1】:

使用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

【讨论】:

    猜你喜欢
    • 2022-07-15
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    相关资源
    最近更新 更多