Python 导入不同结构的 txt 文件时出现问题
Python problems with importing txt files with different structure
我是 python 编程新手,在导入逗号分隔的 txt 文件时遇到问题。
当前txt文件的布局如下:
1,2,3
,4,5,6,7
,8,9,10,11
1,2,3
,4,5,6,7
,8,9,10,11
等等等等
我想导入它并将其作为具有以下结构的 pandas 数据框加载:
Headers
1,2,3,4,5,6,7,8,9,10,11
1,2,3,4,5,6,7,8,9,10,11
我已经尝试了很多,但我就是不知道要 google 做什么。
Space 分开输入的数字取为-
lst = list(map(int, input().split())
从列表中创建一个 pandas 系列,使用默认索引 -
srs = pd.Series(lst)
从系列中创建 pandas 数据框 -
df = pd.DataFrame(srs)
(这个post我会根据你的具体情况来编辑,因为当时还不清楚。)
我从描述中了解到:
您必须从文件中加载文本,并根据一行的前导逗号将它们连接成一行,然后将其作为数据框加载。
您可以从文件加载数据并根据前导将行连接成行 ,
with open("file.txt","r") as f:
data=f.read()
data = data.replace("\n,",",")
接下来,您可以将字符串加载为数据帧
import io import StringIO
data = StringIO(data)
df = pd.read_csv(data, sep=",")
P.S。 : 如果没有 columns
参数,第一行将被视为列名
不知怎么一下子就找到答案了,感谢帮助!
data = [i.strip('\n') for i in open('filename.txt')]
new_data = [' ,'.join(data[i:i+3]) for i in range(0, len(data), 3)]
f = open('filename.txt', 'w')
for i in new_data:
f.write("{}\n".format(i))
f.close()
df = pd.read_csv("filename.txt",header=None)
我是这样做的
import pandas as pd
with open("text.txt") as file:
file = file.read()
data = file.split("\n")
data = [i for i in data if i != ""]
x = ["{}{}{}\n".format(*data) for i in range(len(data)//3)]
x = "".join(x)
with open('text2.txt', 'w') as f:
f.write("".join(x)+"\n")
df = pd.read_csv("text2.txt", header=None)
print(df)
输出:
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10 11
1 1 2 3 4 5 6 7 8 9 10 11
>>>
我是 python 编程新手,在导入逗号分隔的 txt 文件时遇到问题。
当前txt文件的布局如下:
1,2,3
,4,5,6,7
,8,9,10,11
1,2,3
,4,5,6,7
,8,9,10,11
等等等等
我想导入它并将其作为具有以下结构的 pandas 数据框加载:
Headers
1,2,3,4,5,6,7,8,9,10,11
1,2,3,4,5,6,7,8,9,10,11
我已经尝试了很多,但我就是不知道要 google 做什么。
Space 分开输入的数字取为-
lst = list(map(int, input().split())
从列表中创建一个 pandas 系列,使用默认索引 -
srs = pd.Series(lst)
从系列中创建 pandas 数据框 -
df = pd.DataFrame(srs)
(这个post我会根据你的具体情况来编辑,因为当时还不清楚。)
我从描述中了解到: 您必须从文件中加载文本,并根据一行的前导逗号将它们连接成一行,然后将其作为数据框加载。
您可以从文件加载数据并根据前导将行连接成行 ,
with open("file.txt","r") as f:
data=f.read()
data = data.replace("\n,",",")
接下来,您可以将字符串加载为数据帧
import io import StringIO
data = StringIO(data)
df = pd.read_csv(data, sep=",")
P.S。 : 如果没有 columns
参数,第一行将被视为列名
不知怎么一下子就找到答案了,感谢帮助!
data = [i.strip('\n') for i in open('filename.txt')]
new_data = [' ,'.join(data[i:i+3]) for i in range(0, len(data), 3)]
f = open('filename.txt', 'w')
for i in new_data:
f.write("{}\n".format(i))
f.close()
df = pd.read_csv("filename.txt",header=None)
我是这样做的
import pandas as pd
with open("text.txt") as file:
file = file.read()
data = file.split("\n")
data = [i for i in data if i != ""]
x = ["{}{}{}\n".format(*data) for i in range(len(data)//3)]
x = "".join(x)
with open('text2.txt', 'w') as f:
f.write("".join(x)+"\n")
df = pd.read_csv("text2.txt", header=None)
print(df)
输出:
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9 10 11
1 1 2 3 4 5 6 7 8 9 10 11
>>>