我正在尝试使用pandas从txt文件中读取值,并使用matploitlib绘制散点图,但是在尝试不同方法时,我总是遇到各种错误
我的txt文件摘要...
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
minerals "./minerals"
srf "./srf"
)
func main() {
//array of Test struct
var SomeType [10]minerals.Test
//Create 10 units of some random data to write
for a := 0; a < 10; a++ {
SomeType[a] = minerals.Test{
Name: "Rand",
Id: 123,
A: "desc",
Num: 999,
Link: "somelink",
People: []string{"John Doe", "Aby Daby"},
}
}
//writes aditional data to existing file, or creates a new file
n, err := srf.WriteDataToFileAsJSON(SomeType, "test2.json")
if err != nil {
log.Fatal(err)
}
fmt.Println("srf printed ", n, " bytes to ", "test2.json")
//overrides previous file
b, _ := json.MarshalIndent(SomeType, "", "\t")
ioutil.WriteFile("test.json", b, 0644)
}
使用此代码,我将看到以下错误消息
Brain Body
0.37 0.117182754
73 1.349981613
70 0.925010921
0.8 0.007620352
0.15 0.001406136
50 0.419981176
from pandas import*
import pandas as pd
from sklearn import linear_model
import matplotlib.pyplot as plt
#Read_data
dataframe = pd.read_csv('./brain_body.txt' , header = None);
x_values = dataframe[['Brain']]
y_values = dataframe[['Body']]
#Training Model on data
body_reg = linear_model.LinearRegression()
body_reg.fit(x_values, y_values)
plt.scatter(x_values, y_values)
plt.plot(x_values, body_reg.predict(x_values))
plt.show()
答案 0 :(得分:1)
您错误地认为文件中的数据用逗号分隔并且没有标题。实际上,它确实具有标头并且以空格分隔。正确的数据读取方法如下:
dataframe = pd.read_csv('./brain_body.txt', sep=r'\s+')
答案 1 :(得分:0)
如果将read_csv
与header=None
一起使用,则熊猫将假定没有标题。您应该设置header=0
来告诉熊猫,第一行包含标题。
docs有更多信息
答案 2 :(得分:0)
尝试以下代码,并通过在制表符中放置空格来设置.txt文件的格式
import pandas as pd
from sklearn import linear_model
import matplotlib.pyplot as plt
#Read_data
dataframe = pd.read_csv("./brain_body",delimiter="\t")
dataframe
x_values = dataframe[["Brain"]]
y_values = dataframe[["Body"]]
#Training Model on data
body_reg = linear_model.LinearRegression()
body_reg.fit(x_values, y_values)
plt.scatter(x_values, y_values)
plt.plot(x_values, body_reg.predict(x_values))
plt.show()