我有一些这样的数据,
u'1\t\u80a1\u7968\r2\t\u503a\u5238\r3\tTOT-\u6211\u53f8\u5355\u4e2a\u4fe1\u6258\u8ba1\u5212\uff08\u7a7f\u900f\u5f0f\uff09\r4\tTOT-\u6211\u53f8\u591a\u4e2a\u4fe1\u6258\u8ba1\u5212\r5\tTOT-\u5916\u90e8\u4fe1\u6258\u8ba1\u5212\r6\tFOF-\u6307\u5b9a\u5355\u4e2a\u5916\u90e8\u4ea7\u54c1\r7\tFOF-\u6307\u5b9a\u591a\u4e2a\u5916\u90e8\u4ea7\u54c1\r8\t\u80a1\u7968\u5b9a\u589e\r9\t\u80a1\u7968\u8d28\u62bc\r10\t\u79c1\u52df\u57fa\u91d1\uff08\u6211\u53f8\uff09\r99\t\u5176\u4ed6\r'.
我希望将它们转移到pandas数据帧。那么,我该怎么办?
答案 0 :(得分:1)
将string
转换为dict
并使用它创建DataFrame
:
>>> import pandas as pd
>>> s = u'1\t\u80a1\u7968\r2\t\u503a\u5238\r3\tTOT-\u6211\u53f8\u5355\u4e2a\u4fe1\u6258\u8ba1\u5212\uff08\u7a7f\u900f\u5f0f\uff09\r4\tTOT-\u6211\u53f8\u591a\u4e2a\u4fe1\u6258\u8ba1\u5212\r5\tTOT-\u5916\u90e8\u4fe1\u6258\u8ba1\u5212\r6\tFOF-\u6307\u5b9a\u5355\u4e2a\u5916\u90e8\u4ea7\u54c1\r7\tFOF-\u6307\u5b9a\u591a\u4e2a\u5916\u90e8\u4ea7\u54c1\r8\t\u80a1\u7968\u5b9a\u589e\r9\t\u80a1\u7968\u8d28\u62bc\r10\t\u79c1\u52df\u57fa\u91d1\uff08\u6211\u53f8\uff09\r99\t\u5176\u4ed6\r'
>>> dct = dict(line.split('\t') for line in s.strip().split('\r'))
>>> print(dct)
{'1': '股票', '2': '债券', '3': 'TOT-我司单个信托计划(穿透式)', '4': 'TOT-我司多个信托计划', '5': 'TOT-外部信托计划', '6': 'FOF-指定单个外部产品', '7': 'FOF-指定多个外部产品', '8': '股票定增', '9': '股票质押', '10': '私募基金(我司)', '99': '其他'}
>>> df = pd.DataFrame.from_dict(dct, orient='index')
>>> print(df)
0
1 股票
2 债券
3 TOT-我司单个信托计划(穿透式)
4 TOT-我司多个信托计划
5 TOT-外部信托计划
6 FOF-指定单个外部产品
7 FOF-指定多个外部产品
8 股票定增
9 股票质押
10 私募基金(我司)
99 其他
答案 1 :(得分:0)
这里有一个想法如何实现你的目标,在这里我只接受你的一部分字符串并转换,如果你想将它应用于你的数据,你必须做一些改变,因为数据的格式不正确。
print('\\u80a1\\u7968'.encode('ascii').decode('unicode-escape'))
它会像:
股票