【发布时间】:2021-04-28 19:29:26
【问题描述】:
我想在每个 .tsv 文件中添加一个名为 X 的列。我希望此列具有 folder_names 列表中相应索引的值(每个 .tsv 文件的 folder_names 的一个值)。但是enumerate 函数在for loop 的每次迭代中都会重复,因此“X”列总是得到names 的最后一个值,而不是对应的。
我得到了这两个列表:
all_files_tsv = [tsv_file_1, tsv_file_2.... tsv_file_n]
folder_names = [folder_name_1, folder_name_2.... folder_name_n]
所需的输出如下:
tsv_file_1:
| Column1 | Column2 | X |
|---|---|---|
| 1 | A | folder_name_1 |
| 2 | B | folder_name_1 |
| 3 | C | folder_name_1 |
tsv_file_2:
| Column1 | Column2 | X |
|---|---|---|
| 1 | --- | folder_name_2 |
| 2 | --- | folder_name_2 |
| 3 | --- | folder_name_2 |
这是我现在拥有的代码:
for file_ in all_files_tsv:
df = pd.read_csv(file_,sep = '\t', header=0)
for index, names in enumerate(folder_names):
df['X'] = names
知道我该如何解决这个问题吗?
【问题讨论】:
-
我对 pandas 不是很熟悉,但你可能想做
df['X'][index] = names之类的东西吗?或者也许反过来? -
folder_names是普通列表吗?您希望所有列都具有相同的值吗? -
你没有使用
index,那你为什么使用enumerate()?
标签: python pandas dataframe enumerate