在Python中将数据框行转换为没有字符串索引的值字符串

时间:2019-03-07 00:11:29

标签: python-3.x pandas

我有一个数据框行,并希望将其作为仅包含值而不是列的字符串来获取。

col1 | col2 | col3
-----------------
1    | 2    | 3
x    | y    | z

我希望只能选择一行并将其作为字符串,例如:

'1','2','3'

但是我仍然使列名仍然存在,或者很多其他值,例如:

"['1' '2'\n '3']"

4 个答案:

答案 0 :(得分:4)

只需使用

df.iloc[1,:].to_string(header=False, index=False)
  1. header = False->在输出字符串中不包括列名

  2. index = False->在输出字符串中不包括行索引

答案 1 :(得分:1)

您可以使用iloc来获取索引并提供结果。 iloc[row_indexes, column_indexes]

因此df.iloc[0,:]将占据第一(第0)行和所有列。它将返回一个Series,因此您可以使用列表推导[str(x)in x inerable]将值作为字符串传递回。

import pandas as pd

df = pd.DataFrame({'a':[1, 2], 'b':[3, 4], 'c':[5, 6]})

[str(x) for x in df.iloc[0,:]]

['1', '3', '5']

答案 2 :(得分:0)

如果只希望将行0中的值字符串与,串联在一起,则可以执行以下操作:

import pandas as pd
df = pd.DataFrame({"col1":[1,"x"],"col2":[2,"y"],"col3":[3,"z"]})
l = df.iloc[0,:].apply(str).values
s = ",".join(l)

列表如下:

>> print l
['1' '2' '3']

得到的字符串是:

>> print s
1,2,3

答案 3 :(得分:0)

尝试:

df.apply(lambda x: list(x), 1)