我有一些.txt格式的文本文件。
我正在尝试使用它们创建.csv文件,以便.txt文件位于索引列中。
我稍后会在编辑数据帧时添加包含人口统计和统计信息(例如,L1,提示和级别)的列,但我想在索引中对齐txt文件,以便我可以进行一些NLTK分析。 / p>
所需的输出是:
L1 Prompt Level
FileName
data1.txt Japanese P1 High
data2.txt Korean P1 High
data3.txt Chinese P1 High
data4.txt Japanese P2 Med
data5.txt Korean P2 Med
data6.txt Chinese P2 Med
data7.txt Arabic P1 High
data8.txt German P1 High
data9.txt Spanish P1 High
data10.txt Arabic P2 Med
data11.txt German P2 Med
data12.txt Spanish P2 Med
我尝试的代码如下
df1=pd.read_csv('data1.txt',names=['data1'])
df2=pd.read_csv('data2.txt',names=['data2'])
df3=pd.read_csv('data3',names=['data3'])
result=pd.concat([df1,df2,df3],axis=1)
result.to_csv('mergedfile.txt',index=False)
但这当然会创建列
data1.txt data2.txt data3.txt
0 XYZ GHI PQR
1 ABC JKL STU
2 DEF MNO VWX
XYZ和ABC都是句子,例如“我的祖国和美国之间的差异之一就是便利店”。或者“一个不同的是公共交通,每个人都在我的国家乘坐公共交通工具,而不是在美国。”
每个txt文件有超过100,000个话语,所以我不想把所有数据都放在数据帧中,如果我能把txt文件放到索引列中,那将是最理想的。
最终,我想将其导出到.csv,然后将其用于进一步分析。
答案 0 :(得分:2)
您可以使用数据框中的列作为新数据框的索引:
df1 = pd.DataFrame({'data1': ['XYZ', 'ABC', 'DEF']})
df2 = pd.DataFrame({'data2': ['GHI', 'JKL', 'MNO']})
df3 = pd.DataFrame({'data3': ['PQR', 'STU', 'VWX']})
df = pd.concat([df1, df2, df3], axis=1)
print(df)
# data1 data2 data3
# 0 XYZ GHI PQR
# 1 ABC JKL STU
# 2 DEF MNO VWX
res = pd.DataFrame(index=[k+'.txt' for k in df],
columns=['L1', 'Prompt', 'Level'])
print(res)
# L1 Prompt Level
# data1.txt NaN NaN NaN
# data2.txt NaN NaN NaN
# data3.txt NaN NaN NaN