首页 > 解决方案 > 遍历 df 行并附加到没有名称和 dtype 的列表

问题描述

我有一个 df 有 24 列,我想遍历每一行并连续附加到一个列表。

下面的代码完成了这项工作 - 但它也附加在我需要删除的索引值和名称和数据类型上。

results = []
for row in data.iterrows():
    results.append(row)
(0, 1     11.87
2      7.60
3      0.32
4      3.11
5     47.43
6     47.81
7     24.74
8     32.57
9     39.49
10    24.48
11    18.14
12    26.52
13    14.17
14    13.45
15    17.80
16    17.89
17    27.39
18    51.55
19    60.22
20    69.64
21    75.97
22    67.45
23    52.88
24    53.25
Name: 0, dtype: float64)
(1, 1     54.49
2     51.67
3     53.68
4     33.81
5     26.99
6     25.80
7     36.35
8     28.85
9     26.01
10     8.44
11     1.64
12     8.01
13    23.41
14    16.22
15    16.30
16     8.90
17     1.93
18     0.00
19     2.79
20    30.24
21    55.58
22    62.79
23    74.70
24    68.46
Name: 1, dtype: float64)

这类似于遍历每一行,转置选定的行,然后将它们连续添加到列表中。如果 df 为 (5, 24),则列表长度将为 5*24 = 120。

标签: pythonpandasdataframe

解决方案


您不需要遍历它们。尝试这个:

inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
df = pd.DataFrame(inp)

print(df)
    c1  c2
0   10  100
1   11  110
2   12  120

现在您可以使用.values.ravel()创建所有数据框值的列表:

list(df.values.ravel())

输出:

[10, 100, 11, 110, 12, 120]

推荐阅读