如何将 pandas loc 索引器转换为字符串?

How can I convert pandas loc indexer to a string?

我有像 -

这样的 csv 数据框
print(test.loc[1])
outlook         sunny
temperature      mild
humidity       normal
wind             weak
playtennis        yes
Name: 1, dtype: object

我想把它转换成类似 -

outlook.sunny.temperature.mild.humidity.normal.wind.weak.playtennis.yes

我怎样才能做到这一点?

ser = test.loc[1]

  1. 您可以使用 .to_dict()
  2. 将该系列转换为字典
  3. 然后将字典转换成key/value个元组的列表,其中.items()
  4. 然后用itertools.chain将元组合并为一个列表,最后
  5. .join() 加入带句点的列表项。

Python代码:

from itertools import chain

'.'.join(chain.from_iterable(ser.to_dict().items()))
#'outlook.sunny.temperature.mild.humidity.normal....yes'

这是使用列表推导的一种方式 str.join:

import pandas as pd

test = pd.DataFrame([['sunny', 'mild', 'normal', 'weak', 'yes']],
                    columns=['outlook', 'temperature', 'humidity', 'wind', 'playtennis'])

res = '.'.join([k+'.'+test[k].iloc[0] for k in test])

print(res)

'outlook.sunny.temperature.mild.humidity.normal.wind.weak.playtennis.yes'

或者,您可以 zip 列名和数据框 values:

res = '.'.join(i+'.'+j for i, j in zip(test, test.values[0]))