我的代码是
ValueError: could not convert string to float: '1996 08 01'
data.txt文件包含日期为YYYY MM DD的4,000个条目,数字:
var sum = 0;
while (true)
{
Console.Write("Enter a number: or ok to exit : ");
String input = Console.ReadLine();
if (input == "ok" || input.ToLower() == "ok") break;
if(string.IsNullOrWhiteSpace(input))
continue;
sum += Convert.ToInt32(input);
}
Console.WriteLine("Total Result: " + sum);
我得到了错误
#!/usr/bin/env python
import tika
tika.initVM()
from tika import parser
parsed = parser.from_file('pdf/myPdf.pdf')
如何将其转换为字符串并仍然正确显示在图形上?
答案 0 :(得分:1)
您可以使用pandas。特别是read_csv函数,它返回一个DataFrame。
问题不是4000点。但是x
是一个字符串(日期为字符串)。尝试将它们转换为datetime
,以使其更易于管理。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('data.txt', names=['date', 'value'])
# We convert the str to datetime
x = pd.to_datetime(df.date)
y = df.value
plt.plot(x,y, label='test')
plt.xlabel('Date')
plt.ylabel('F10.7 flux')
plt.title('Solar Cycle 23')
plt.legend()
plt.show()
请注意,df.date和df.value不是数组,而是pandas Series。 要访问值(仅限数组):
x = df.date.values
y = df.value.values
答案 1 :(得分:1)
使用熊猫,可以在DataFrame创建期间通过使用parse_dates=[0]
来解析日期时间信息,并指定第一列应包含日期时间数据。
旁注;无需采取将df列分配给x和y的中间步骤。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('solar.txt', names=['date', 'value'], parse_dates=[0])
plt.plot(df.date, df.value, label='test')
plt.xticks(rotation='45')
plt.xlabel('Date')
plt.ylabel('F10.7 flux')
plt.title('Solar Cycle 23')
plt.legend()
plt.show()