python - 将大写字母与 CSV 文件中的数字分开
问题描述
我有一个大的 csv 文件,在同一行中有数字和字母。
我怎样才能在新列中只输入大写字母?
CSV 有这种格式
1AAOIAppli
2ABEOAbeon
3ABIOARCA
4ABUSArbut
5ACERAcer
...
我想像这样生成一个新的csv
AAOI
ABEO
ABIO
ABUS
ACER
...
过去两周一直在学习 python,我对此感到绝望,
谢谢你们
解决方案
使用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
推荐阅读
- java - springboot Logback如何防止删除较旧的Log文件
- css - MUI v5 + React styleguidist + ScopedCSSBaseline + createTheme styleOverrides:body fontSize 更改不起作用
- python - pip3 在 linux rasp 上安装 wxpython 时出错
- c# - c#删除自定义列表的重复项
- json - AWS API Gateway 将动态 JSON 直接写入 DynamoDB 并保持 JSON 结构
- network-programming - SNMP 协议 - 为什么我得到的值比我应该得到的多?
- c - 当我尝试访问字符串数组时出现分段错误
- ignite - Apache Ignite - 使用 Map 类型的字段存储和搜索对象的最佳方法是什么
> - flutter - 我如何在 Dio Package 中得到错误响应
- swift - SKAudioNode 缓冲音频