如何将使用“\r\n”作为换行符的字符串转换为 pandas 数据帧
How to convert string that uses "\r\n" as line breaks to pandas dataframe
我有一个字符串 bytearray(b'onefish,twofish,greenfish,bluefish\r\n1,2,3,4')
我使用 pgpy
库从加密的 csv 文件中获取该字符串。
我需要我的数据框看起来像这样。
onefish twofish greenfish bluefish
0 1 2 3 4
到目前为止,我使用多个 for
循环生成列表,然后将其放入字典中。
如何使用:
df = pd.Dataframe(bytearray(b'onefish,twofish,greenfish,bluefish\r\n1,2,3,4')
得到上面我想要的输出?
- 来自给定的数据。按“\r\n”拆分数据。
- 假设第一行总是header将其作为列传递,其余行作为数据传递。
>>>import pandas as pd
>>>b = b'onefish,twofish,greenfish,bluefish\r\n1,2,3,4\r\n5,6,7,8'
>>>data = list(map(lambda x: x.split(','),b.decode('utf-8').split("\r\n")))
>>>pd.DataFrame(data[1:], columns=data[0])
onefish twofish greenfish bluefish
0 1 2 3 4
1 5 6 7 8
据我所知,您可以使用 io.BytesIO:
import pandas as pd
import io
df = pd.read_csv(io.BytesIO(bytearray(b'onefish,twofish,greenfish,bluefish\r\n1,2,3,4\r\n5,6,7,8\r\n9,10,11,12')))
print(df)
onefish twofish greenfish bluefish
0 1 2 3 4
1 5 6 7 8
2 9 10 11 12
我有一个字符串 bytearray(b'onefish,twofish,greenfish,bluefish\r\n1,2,3,4')
我使用 pgpy
库从加密的 csv 文件中获取该字符串。
我需要我的数据框看起来像这样。
onefish twofish greenfish bluefish
0 1 2 3 4
到目前为止,我使用多个 for
循环生成列表,然后将其放入字典中。
如何使用:
df = pd.Dataframe(bytearray(b'onefish,twofish,greenfish,bluefish\r\n1,2,3,4')
得到上面我想要的输出?
- 来自给定的数据。按“\r\n”拆分数据。
- 假设第一行总是header将其作为列传递,其余行作为数据传递。
>>>import pandas as pd
>>>b = b'onefish,twofish,greenfish,bluefish\r\n1,2,3,4\r\n5,6,7,8'
>>>data = list(map(lambda x: x.split(','),b.decode('utf-8').split("\r\n")))
>>>pd.DataFrame(data[1:], columns=data[0])
onefish twofish greenfish bluefish
0 1 2 3 4
1 5 6 7 8
据我所知,您可以使用 io.BytesIO:
import pandas as pd
import io
df = pd.read_csv(io.BytesIO(bytearray(b'onefish,twofish,greenfish,bluefish\r\n1,2,3,4\r\n5,6,7,8\r\n9,10,11,12')))
print(df)
onefish twofish greenfish bluefish
0 1 2 3 4
1 5 6 7 8
2 9 10 11 12