我正試圖將一個檔案轉換為一個鄰接矩陣。 我需要以一種允許不同大小的檔案來填充這個矩陣的方式來做這件事。 我目前的作業檔案大小為4。 這是我的測驗檔案,我需要的是以一種抽象的方式來處理更大的檔案。
這是我的測驗檔案。1-4是布林值的所屬列。
1, 0
1,0.
1,1
1,1
2, 0
2, 0
2, 0
2, 1
3, 1
3, 0
3, 0
3, 1
4, 1
4,1
4,1
4, 0
我希望最后的結果是:
0 0 1 1
0 0 0 1
1 0 0 1
1 1 1 0
下面是我的代碼,它產生了一個類似于我的輸入檔案的資料框架。
# importing needed libraries。
import os.path
from math import sqrt
import numpy as np
import pandas as pd
# 更改檔案路徑為變數名
fileName = "./testAlgorithm.csv"。
# 打開檔案,進行檔案檢查,轉換。
# file to dataframe
if os.path.isfile(fileName)。
with open(fileName, "r") as csvfile:
df = pd.read_csv(fileName, header=None)
else:
print(f "file{fileName}不存在")
# 用于計算行數的方法。
#在資料檔案中。
def simpleCount(fileName)。
行=0
for line in open(fileName)。
lines = 1 1
return sqrt(lines)
# 行數的方法呼叫。
lineNum = simpleCount(fileName)
print(df)
num = int(simpleCount(fileName))
uj5u.com熱心網友回復:
你可以試試:
dummy = pd. DataFrame(columns= [['c1','c2','c3','c4'] ] )
dummy['c1'] = np.array(df['c2'].loc[df['c1'] ==1] )
dummy['c2'] = np.array(df['c2'].loc[df['c1'] ==2] )
dummy['c3'] = np.array(df['c2'].loc[df['c1'] ==3] )
dummy['c4'] = np.array(df['c2'].loc[df['c1'] ==4] )
它將會給你提供 :
c1 c2 c3 c4
0 0 0 1 1
1 0 0 0 1
2 1 0 0 1
3 1 1 1 0
uj5u.com熱心網友回復:
df = pd. DataFrame({"A"/span>: [0,0,1,1, 0,0,0,1, 1,0,0,1。 1,1,1, 0]})
df.values.reshape(4,4)
如果你想把它變回一個資料框架
pd.DataFrame(df.values. reshape(4,4), columns=["A"/span>, "B"/span>, "C"/span>, "D"/span>])
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/309479.html
標籤:
