Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从.txt文件创建带有熊猫的数据帧_Python_Pandas_Dataframe - Fatal编程技术网

Python 从.txt文件创建带有熊猫的数据帧

Python 从.txt文件创建带有熊猫的数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我在使用pandas将.txt文件转换为浮点值的数据帧时遇到问题。我需要创建一个包含两列数据的散点图,但我一直收到错误“TypeError:Empty'DataFrame:无需绘制的数字数据”,因此我认为它将数据作为字符串读取 我正在读取的文件是9000行。我在开头跳过了几行,因为它们只是文本。当我只运行代码的第一行时,它似乎创建了一个合法的数据帧,但随后尝试绘制散点图并没有成功。列的名称正好位于文件中数据值的前面。我想画的两个散点图是“Xpos”和“Ypos” 我的代码非常简单: df = p

我在使用pandas将.txt文件转换为浮点值的数据帧时遇到问题。我需要创建一个包含两列数据的散点图,但我一直收到错误“TypeError:Empty'DataFrame:无需绘制的数字数据”,因此我认为它将数据作为字符串读取

我正在读取的文件是9000行。我在开头跳过了几行,因为它们只是文本。当我只运行代码的第一行时,它似乎创建了一个合法的数据帧,但随后尝试绘制散点图并没有成功。列的名称正好位于文件中数据值的前面。我想画的两个散点图是“Xpos”和“Ypos”

我的代码非常简单:

df = pd.read_csv('data.txt', sep='|', skiprows=44)
df.plot(x='Xpos', y='Ypos')
下面是数据帧前20行的示例

注意HHVA Xpos YPO。。。B-V u_B-V e_Vmag e_B-V
2        10001   47.22   68.87   ...     0.731         0.010   0.010
3        10002   62.38   38.89   ...     0.921         0.010   0.010
4        10003  207.27  371.05   ...     0.884         0.010   0.010
5        10004  146.39  208.01   ...     0.791         0.010   0.010
6        10005  189.39  294.75   ...     1.392         0.011   0.016
7     *  10006  205.68  475.89   ...     0.645         0.013   0.015
8     *  10007  273.94  244.41   ...     0.546         0.004   0.009
9     *  10008  159.47  126.65   ...     0.593         0.009   0.012
10    *  10009   99.21  294.68   ...     0.622         0.010   0.012
11    *  10010  215.65   20.32   ...     0.558         0.005   0.009
12    *  10011   96.96  473.71   ...     0.582         0.009   0.011
13       10012  126.02  401.93   ...     1.174         0.010   0.013
14    *  10013  109.47  262.02   ...     0.557         0.010   0.013
15    *  10014   92.94  444.24   ...     0.569         0.008   0.012
16       10015  174.44  469.01   ...     0.554         0.012   0.015
17    *  10016   17.07  427.70   ...     0.549         0.013   0.016
18       10017  232.49  385.61   ...     0.781         0.007   0.011
19       10018  241.99  189.83   ...     0.511         0.024   0.029
20    *  10019  262.88  360.47   ...     0.544         0.004   0.008
21    *  10020  110.98  142.96   ...     0.535 0.011 0.014

这是我运行df.info时得到的信息


INT64索引:20个条目,2到21个
数据列(共10列):
注20非空对象
HHVA 20非空对象
Xpos 20非空对象
Ypos 20非空对象
Vmag 20非空对象
u_Vmag 20非空对象
B-V 20非空对象
u_B-V 20非空对象
e_Vmag 20非空对象
e_B-V 20非空对象
数据类型:对象(10)
内存使用率:1.7+KB
无

u_Vmag和u_B-V列中没有任何测量值

我觉得我只是错过了一些显而易见的东西。有人有什么建议吗?

pandas.read\u csv()
将输入数据转换为输入数据的函数
read_csv()
无法检测输入类型,原因是非数字数据和对象的上传

import pandas as pd
import numpy as np
from pandas.compat import StringIO
print(pd.__version__)

data = """
Note|HHVA|Xpos|Ypos|B-V|e_Vmag|e_B-V
1|10001|71.20|68.87|0.731|0.010|0.010
2|10001| |68.87|0.731|0.010|0.010
"""

def myconverter(x):
    try:
        f = float(x)
    except ValueError as ve:
        return np.nan
    return f

df = pd.read_csv(StringIO(data), converters={'Xpos':myconverter}, sep='|', skiprows=0)
print(df.dtypes)

产生

0.24.2
Note        int64
HHVA        int64
Xpos      float64
Ypos      float64
B-V       float64
e_Vmag    float64
e_B-V     float64

让pandas.read_csv()根据输入数据对输入数据进行转换
read_csv()
无法检测输入类型,原因是非数字数据和对象的上传

import pandas as pd
import numpy as np
from pandas.compat import StringIO
print(pd.__version__)

data = """
Note|HHVA|Xpos|Ypos|B-V|e_Vmag|e_B-V
1|10001|71.20|68.87|0.731|0.010|0.010
2|10001| |68.87|0.731|0.010|0.010
"""

def myconverter(x):
    try:
        f = float(x)
    except ValueError as ve:
        return np.nan
    return f

df = pd.read_csv(StringIO(data), converters={'Xpos':myconverter}, sep='|', skiprows=0)
print(df.dtypes)

产生

0.24.2
Note        int64
HHVA        int64
Xpos      float64
Ypos      float64
B-V       float64
e_Vmag    float64
e_B-V     float64


首先,你的数据框里有什么?它是一个星团的测光数据集。列应为ID(5位数字)、x位置(像素)、y位置(像素)、V带幅值、B带幅值、颜色(B-V幅值)、V带标准偏差和B-V标准偏差。列应为。。。嗯,是吗?瞧,你确定你的数据框包含你认为它包含的内容吗?如果是这样的话,你有没有试着明确地将它们铸造成漂浮物?
df.info
告诉你什么?比如,帮助我们,帮助你!最好的猜测是这些列中存在某种类型的值,例如熊猫不喜欢转换的“2300”。或者数据集中缺失的值是如何设置的?首先,数据框中有什么?这是一个星团的测光数据集。列应为ID(5位数字)、x位置(像素)、y位置(像素)、V带幅值、B带幅值、颜色(B-V幅值)、V带标准偏差和B-V标准偏差。列应为。。。嗯,是吗?瞧,你确定你的数据框包含你认为它包含的内容吗?如果是这样的话,你有没有试着明确地将它们铸造成漂浮物?
df.info
告诉你什么?比如,帮助我们,帮助你!最好的猜测是这些列中存在某种类型的值,例如熊猫不喜欢转换的“2300”。或者,数据集中缺少的值是如何设置的?