簡體   English   中英

熊貓將一個數據框的列轉換為另一數據框的索引

[英]Pandas convert columns of one dataframe to index in another dataframe

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

我正在嘗試使用它們創建一個.csv文件,以便該.txt文件位於索引列中。

稍后在編輯數據框時,我將添加帶有人口統計信息(例如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 

我嘗試的代碼如下

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,然后將其用於進一步分析。

您可以只使用數據框中的列作為新數據框的索引:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM