如何从pandas输出中删除名称和dtype

11

我有这样的输出:

nutrition_info_256174499 = df1.loc[:"Salt" , "%Reference Intake*"]

print (nutrition_info_256174499)

Typical Values
Energy                5%
Fat                   1%
of which saturates    1%
Carbohydrates         7%
of which sugars       2%
Fibre                  -
Protein               7%
Salt                  6%
Name: %Reference Intake*, dtype: object

如何在输出的末尾同时删除名称和数据类型?


df1[["Salt", "%参考摄入量*"]].. 尝试这个,即将列名作为列表给出。 - Tokci
@Tokci,你的语法有点问题:"Salt"应该是切片的终点。我发布了一个带有这个解决方案工作版本的答案 :) - wjandrea
5个回答

9

要保留索引打印,您可以使用 Series.to_string()

df = pd.DataFrame(
    {'a': [1, 2, 3], 'b': [2.23, 0.23, 2.3]},
    index=['x1', 'x2', 'x3'])
s = df.loc[:'x2', 'b']    
print(s.to_string())

输出:

x1    2.23
x2    0.23

1
这正是他不想要的。 - Sundeep Pidugu
@SundeepPidugu OP要求“从pandas输出中删除名称和dtype”,并且给出了一个标准输出的示例。请注意,所接受答案中的示例缺少列名,因为它一开始就不是从DataFrame派生的系列。所接受答案的“输出”还删除了索引,这不是OP要求的,并且在将其转换为列表之前根本没有删除“dtype”,这是完全不同的故事。那个OP决定接受一个没有做他真正要求的事情的答案,这是另一回事,你不能责怪我。 - Darkonaut

7

使用 .values 属性。

示例:

In [158]: s = pd.Series(['race','gender'], index=[1,2])

In [159]: print(s)
1      race
2    gender
dtype: object

In [160]: s.values
Out[160]: array(['race', 'gender'], dtype=object)

您可以将其转换为列表或访问每个值:
In [161]: list(s)
Out[161]: ['race', 'gender']

1
print(nutrition_info_256174499.to_string())

这应该会从你的打印输出中移除 Name: %Reference Intake*, dtype: object


0

只需使用 .tolist() 将数据框的值转换为列表即可去除 dtype 元素。然后,您可以通过循环遍历列表以获取单个值:

df_as_a_list = df.values.tolist()

0
也许这不完全是你想要的,但值得一提的是,如果你将列名放在一个列表中,你会得到一个DataFrame而不是Series,名称在顶部而不是底部,且没有dtype。
df1.loc[:"Salt", ["%Reference Intake*"]]

                   %Reference Intake*
Typical Values                       
Energy                             5%
Fat                                1%
of which saturates                 1%
Carbohydrates                      7%
of which sugars                    2%
Fibre                               -
Protein                            7%
Salt                               6%

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接