在if循环中重命名熊猫条目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在if循环中重命名熊猫条目相关的知识,希望对你有一定的参考价值。

我有一个看起来像这样的数据框:

 appended_data
...
...
Out[24]: 
         Unnamed: 0  Region     GeneID  DistanceValue
229676       229676     8.0   69013161       0.972237
229677       229677     8.0   75931496       0.978386
229678       229678     8.0   73424023       0.982667
229679       229679     8.0   74736195       0.987057
280716       280716    10.0   69782778       0.971998
            ...     ...        ...            ...
1097355     1097355    42.0     633685       0.972917
1097356     1097356    42.0   68301216       0.974058
1097357     1097357    42.0  100146162       0.977017
1097358     1097358    42.0   74734794       0.985398
1097359     1097359    42.0     633694       0.992054

[136 rows x 4 columns]

我想在if循环中重命名Region中的条目:

像..区域42应该成为图层名称的42.条目的名称。我尝试过:

import pandas as pd
appended_data = pd.read_csv('/home/anja/0415_pyversion.csv')
with open('/home/anja/Schreibtisch/Master/ABA/layer2_names.txt') as f:
    layernames = [line.strip() for line in f.read().split('\n')]


for i in range(43):
    if (appended_data.Region == i).all:
     (appended_data.Region == i).all = layernames[i] 

我尝试过,没有错误消息,但我的条目未重命名。

..如果愿意

print((appended_data.Region == i).all)

我得到:

Name: Region, Length: 136, dtype: bool>
<bound method Series.all of 229676     False
229677     False
229678     False
229679     False
280716     False

1097355     True
1097356     True
1097357     True
1097358     True
1097359     True
Name: Region, Length: 136, dtype: bool>
答案

Series.map

[如果您曾经使用for i in range(..)作为迭代器,则应作为内置迭代器的Python发出警告,可以通过enumerate进行访问

您尚未给出有关图层名称的最小示例,但似乎是列表。

我们可以将map函数与字典配合使用,并进行一次一次性操作来替换所有区域名称。s

设置

import pandas as pd

s = ['a','b','c'] # your layer_name list. 

layer_dict = k : v for (k,v) in enumerate(s)
# 0: 'a', 1: 'b', 2: 'c'
df = pd.DataFrame([0,1,2],columns=list('A'))

实际中:

df['B'] = df['A'].map(layer_dict)
print(df)
   A  B
0  0  a
1  1  b
2  2  c

以上是关于在if循环中重命名熊猫条目的主要内容,如果未能解决你的问题,请参考以下文章

如何在mongodb中重命名整个集合中的一个元素名称

如何在AWS Linux中重命名wall命令?

使用 Pandas 从查找字典中重命名多索引行

如何在Bash中重命名关联数组?

在 MonoTouch 中重命名命名空间

如何在 Azure DevOps 中重命名任务组