如何读入或转换txt文件以获得特定的数据帧(一行中的每三段)?
How to read in or transform txt file in order to get specific dataframe (every three paragraphs in one row)?
我有这样一个文本文件:
Count1
------
1234
Count2
------
2345
Count3
------
3456
我想要得到的是这样一个dataframe
Count1 1234
Count2 2345
Count3 3456
这意味着我想获取一个数据框,其中存在三段(不包括第二段)的行,并在原始文本文件中的每第三段之后创建一个新行。
这是否可以通过以特殊方式读取数据框来实现,或者我是否必须在以 csv 格式读取 txt 文件后转换数据框?
根据数据,您似乎需要在从文本文件中读取数据后进行转换。
下面是您可以尝试的代码,其中 test.txt 文件包含您在问题中提到的数据。
with open('test.txt', 'r') as f:
data = f.read().splitlines()
data = [x for x in data if ''.join(set(x)) not in ['','-']]
df = pd.DataFrame(data[1:len(data):2], data[0:len(data):2]).reset_index()
df.rename(columns={'index' : 'Count', 0 : 'Value'}, inplace=True)
print(df)
Count Value
0 Count1 1234
1 Count2 2345
2 Count3 3456
我有这样一个文本文件:
Count1
------
1234
Count2
------
2345
Count3
------
3456
我想要得到的是这样一个dataframe
Count1 1234
Count2 2345
Count3 3456
这意味着我想获取一个数据框,其中存在三段(不包括第二段)的行,并在原始文本文件中的每第三段之后创建一个新行。
这是否可以通过以特殊方式读取数据框来实现,或者我是否必须在以 csv 格式读取 txt 文件后转换数据框?
根据数据,您似乎需要在从文本文件中读取数据后进行转换。
下面是您可以尝试的代码,其中 test.txt 文件包含您在问题中提到的数据。
with open('test.txt', 'r') as f:
data = f.read().splitlines()
data = [x for x in data if ''.join(set(x)) not in ['','-']]
df = pd.DataFrame(data[1:len(data):2], data[0:len(data):2]).reset_index()
df.rename(columns={'index' : 'Count', 0 : 'Value'}, inplace=True)
print(df)
Count Value
0 Count1 1234
1 Count2 2345
2 Count3 3456