gpt4 book ai didi

python - Jupyter Pandas DataFrame - 读取列值

转载 作者:行者123 更新时间:2023-12-01 02:28:03 24 4
gpt4 key购买 nike

我有一段 Python 代码,用于读取给定行的 SQL 列的值。下面的代码片段只是迭代 DataFrame 上下文中的列并将数值附加到数组中。

如果我打印出每列的值,输出看起来是正确的。但是,如果我打印出最终的数组,那么我会看到奇怪的格式(元数据)。

values = []
for i in range(len(columns)):
val = df[columns[i]];
values.append(val)
#print(values) // this prints out the correct numeric value.

#print(values) // but this prints out the array with the weird format.

奇怪的/元数据输出如下所示:

[0    0
Name: colname1, dtype: int64, 0 8
Name: colname2, dtype: int64, 0 0
Name: colname3, dtype: int64, 0 0
Name: colname4, dtype: int64, 0 0
Name: colname5, dtype: int64, 0 0
Name: colname6, dtype: int64, 0 0
Name: colname7, dtype: int64, 0 0
Name: colname8, dtype: int64, 0 0
Name: colname9, dtype: int64, 0 0
Name: colname10, dtype: int64, 0 1
Name: colname11, dtype: int64, 0 0
Name: colname12, dtype: int64]

当我明确附加数值时,为什么我会看到所有这些元数据内容?

请注意,DataFrame 是通过 pd.read_sql_query 调用创建的。

最佳答案

我认为您需要将值转换为numpy array,转置并转换为list:

df = pd.DataFrame({
'A': ['a','e','g'],
'B': list(range(3))
})
print (df)
A B
0 a 0
1 e 1
2 g 2

L = df.values.T.tolist()
print (L)
[['a', 'e', 'g'], [0, 1, 2]]

如果需要循环较慢的解决方案,请将Series转换为list:

values = []
for i in range(len(columns)):
val = df[columns[i]];
values.append(val.tolist())

如果只有一行DataFrame或需要在df中选择某行,请使用iloc按位置选择系列,然后转换为列表:

df = pd.DataFrame({
'A': [0],
'B': [3],
'C' :[1]
})
print (df)
A B C
0 0 3 1

L = df.values.T.tolist()
print (L)
[[0], [3], [1]]

#select first row
L1 = df.iloc[0].tolist()
print (L1)
[0, 3, 1]
<小时/>
df = pd.DataFrame({
'A': ['a','e','g'],
'B': list(range(3))
},index=list('def'))
print (df)
A B
d a 0
e e 1
f g 2

#select by index name
L1 = df.loc['f'].tolist()
print (L1)
['g', 2]

#select by position of row
L1 = df.iloc[2].tolist()
print (L1)
['g', 2]

关于python - Jupyter Pandas DataFrame - 读取列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47166372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com