Pandas将一个数据帧的列转换为另一个datafram中的索引

2024-06-01 07:08:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些文本文件是.txt格式的。在

我正试图用它们创建一个.csv文件,以便.txt文件位于索引列中。在

稍后编辑dataframe时,我将添加包含人口统计和统计信息(例如L1、Prompt和Level)的列,但是我希望在索引中对齐txt文件,以便进行一些NLTK分析。在

所需输出为:

            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 

我尝试的代码如下

^{pr2}$

但这当然会产生列

   data1.txt   data2.txt   data3.txt
0  XYZ         GHI         PQR
1  ABC         JKL         STU
2  DEF         MNO         VWX

XYZ和ABC都是句子,例如,“我的祖国和美国的区别之一是便利店。”或者“一个区别是公共交通,每个人都在我的祖国乘坐公共交通工具,而在美国就没有那么多了。”

对于每个txt文件,我有超过100000个语句,所以我不想把所有的数据都放在dataframe中,如果我能把txt文件放到index列中,那将是最理想的。在

最后,我希望将其导出到.csv,然后使用它进行进一步的分析。在


Tags: 文件csvtxtl1dataframemedlevelprompt
1条回答
网友
1楼 · 发布于 2024-06-01 07:08:22

您只需将数据帧中的列用作新数据帧的索引:

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

相关问题 更多 >