【发布时间】:2020-04-20 11:48:57
【问题描述】:
我得到了一个看起来像这样的数据框:
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 中的条目:
Like.. region 42 应该成为 layernames 的 42. entry 的名称。我试过了:
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>
【问题讨论】:
-
在循环之前添加
print((appended_data.Region == i).all)之前。你得到什么输出? -
@ForceBru 我在上面加了
-
见:
<bound method Series.all of ...。这是一个方法,但你没有调用它,所以它什么都不做 -
你能打印 layernames 的输出吗?
-
它只是一个包含 43 个字符串的列表,例如 ['background', 'bla', ..] 我也只有 43 个不同的区域..