从中列出列表Pandas.dataframe.iloc切片在pandas.dataframe.valuessli公司

2024-10-01 13:42:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把数据帧中的列合并成一个新的列

所以我用了:

newdataframe["agregate1"]=list(df.iloc[:,0:4])

但它不起作用。 它返回一个[“intensity_x”]列表(以x作为列索引),这些字符串是我的dataframe列的名称。在

同时

^{pr2}$

将返回诸如

[0.0,0.0,0.0,0.0,0.0,0.0,2920000000.0,2830000000.0,3030000000.0,0.0,2980000000.0,3000000000.0]。在

它实际上很重要,因为我无法正确地检索数据,它看起来像是一个bug,或者我遗漏了一些重要的东西。在

通过阅读: pack dataframe columns to list in pandas

我用数据框值除了iloc,我仍然不明白使用“整个切片”有什么问题,只获取标题。这很奇怪。谢谢


Tags: 数据字符串名称dataframedf列表bugpack
1条回答
网友
1楼 · 发布于 2024-10-01 13:42:47

如果使用:

df1 = df.iloc[:,0:4]

输出是DataFrame。在

如果:

^{pr2}$

输出是Series-第一个row,在df和列1:4。在

样品:

df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,5,6],
                   'C':[7,8,9],
                   'D':[1,3,5],
                   'E':[5,3,6],
                   'F':[7,4,3]})

print (df)
   A  B  C  D  E  F
0  1  4  7  1  5  7
1  2  5  8  3  3  4
2  3  6  9  5  6  3

df1 = df.iloc[:,0:4]
print (df1)
   A  B  C  D
0  1  4  7  1
1  2  5  8  3
2  3  6  9  5

df2 = df.iloc[0,0:4]
print (df2)
A    1
B    4
C    7
D    1
Name: 0, dtype: int64

然后,如果需要输出为numpy array,可以使用^{}

print (df1.values)
[[1 4 7 1]
 [2 5 8 3]
 [3 6 9 5]]

如果需要lists的输出list,请使用:

print (df1.values.tolist())
[[1, 4, 7, 1], [2, 5, 8, 3], [3, 6, 9, 5]]

如果需要在新列中列出:

df['new'] = df.iloc[:,0:4].values.tolist()
print (df)
   A  B  C  D  E  F           new
0  1  4  7  1  5  7  [1, 4, 7, 1]
1  2  5  8  3  3  4  [2, 5, 8, 3]
2  3  6  9  5  6  3  [3, 6, 9, 5]

df['new'] = list(df.iloc[:,0:4].values)
print (df)
   A  B  C  D  E  F           new
0  1  4  7  1  5  7  [1, 4, 7, 1]
1  2  5  8  3  3  4  [2, 5, 8, 3]
2  3  6  9  5  6  3  [3, 6, 9, 5]

相关问题 更多 >