python - 在列表中的对字符串之前用数字替换 Pandas 中的字符串

标签 python python-3.x pandas dataframe

给定以下 pandas df:

import pandas as pd

df = pd.DataFrame({'1' : ['title1','R','R','R'],
               '2' : ["title2", "NR" ,"NR", "NR"],
               '3' : ["title3", "R" , "NR", "NR"],
               '4' : ["title4", "R", "NR", "R"]})

还有一个更长的字符串列表:

List = ['2633', 'title1', '3327', 'title2', '18', 'title3', '5', 'title4', '5835', 'title5', '394', 'title6']

在 python 环境中是否有可能将 df 中的标题替换为字符串列表中每个标题对之前的数字。

预期输出:

dfnew = pd.DataFrame({'1' : ['2633','R','R','R'],
               '2' : ["3327", "NR" ,"NR", "NR"],
               '3' : ["28", "R" , "NR", "NR"],
               '4' : ["5", "R", "NR", "R"]})

dfnew
    1    2      3   4
0   2633 3327   28  5
1   R    NR     R   R
2   R    NR     NR  NR
3   R    NR     NR  R

我假设 regex 可以解决问题,但我不知道如何从列表中访问正确的数字。

提前感谢您的帮助!

最佳答案

从偶数和奇数索引创建一个dict 作为键值对,并使用replacetitle 替换为numbers:

d = {k:v for k,v in zip(List[1::2], List[::2])}

print(df.replace(d))

输出:

     1     2   3   4                                                                                                                 
0  2633  3327  18   5                                                                                                                 
1     R    NR   R   R                                                                                                                 
2     R    NR  NR  NR                                                                                                                 
3     R    NR  NR   R  

解释

List[1::2] 将为您提供列表中奇数索引处的元素 ['title1', 'title2', 'title3', 'title4', 'title5' , 'title6']

List[::2] 将为您提供列表 ['2633', '3327', '18', '5', '5835', '394']

关于python - 在列表中的对字符串之前用数字替换 Pandas 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55512416/

相关文章:

python - 有效地从 Pandas Dataframe 中删除所有零

python - Pandas 可以读取转置的 CSV 文件吗?

python - try/except python 处理和 int() 函数

python - 在 Python 中导入 C++ 共享对象时出现段错误

python : UnicodeEncodeError: 'latin-1' codec can't encode character

python-3.x - python 3.4 计算 .txt 文件中的出现次数

Python 和 UIO 设备 : Why does mmap. read() 工作而 os.read() 失败?

python-3.x - 为什么我必须继续使用 "no"资本才能让我的程序在 Python 中运行

python - 压缩和比较 Python 列表的高效准确方法?

python - 如果引用的文件不存在,则有效删除 Pandas DataFrame 中的行