需要帮助使用 pandas 读取列并打印 .csv 文件中的新列

Need help using pandas to read a column and print a new column in .csv file

我正在尝试使用 pandas 读取 excel 文件中的列并使用我的输入打印新列。我正在尝试将 3 个字母的代码转换为 1 个字母的代码。到目前为止,我已经编写了这段代码,但是当我 运行 它时,它不会在最后一列中打印任何内容。

import pandas as pd
df = pd.read_csv (r'C:\Users\User\Documents\Research\seqadv.csv') 
print (df)

codes = []
for i in df['WT_RESIDUE']:
   if i == 'ALA':
    codes.append('A')
   if i == 'ARG':
    codes.append('R')
   if i == 'ASN':
    codes.append('N')
   if i == 'ASP':
    codes.append('D')
   if i == 'CYS':
    codes.append('C')
   if i == 'GLU':
    codes.append('E')
    print (codes)
codes = df ['MUTATION_CODE']
df.to_csv(r'C:\Users\User\Documents\Research\seqadv3.csv')

写入:

df['MUTATION_CODE'] = codes

执行此操作的方法是使用替换值定义字典,然后在现有列上使用 map()replace() 来创建新列。两者的区别在于

  • replace() 不会更改不在字典键中的值
  • map() 将用字典的默认值(如果有)或 NaN(如果字典没有默认值)替换任何不在字典键中的值
df = pd.DataFrame(data={'WT_RESIDUE':['ALA', 'REMARK', 'VAL', 'CYS', 'GLU']})

codes = {'ALA':'A', 'ARG':'R', 'ASN':'N', 'ASP':'D', 'CYS':'C', 'GLU':'E'}

df['code_m'] = df['WT_RESIDUE'].map(codes)
df['code_r'] = df['WT_RESIDUE'].replace(codes)


In: df
Out: 
  WT_RESIDUE code_m  code_r
0        ALA      A       A
1     REMARK    NaN  REMARK
2        VAL    NaN     VAL
3        CYS      C       C
4        GLU      E       E

更详细的信息在这里:Remap values in pandas column with a dict