Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.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
如何删除从csv导入的python dataframe中的部分数据?_Python_Pandas - Fatal编程技术网

如何删除从csv导入的python dataframe中的部分数据?

如何删除从csv导入的python dataframe中的部分数据?,python,pandas,Python,Pandas,我正试图从days-to-Maturity列中去掉天数。所以不是0天,而是0天。我已经尝试了一些方法,但是我想知道是否有一种简单的方法可以在python中实现这一点。谢谢 In[12]: from pandas import * XYZ = read_csv('XYZ') df_XYZ = DataFrame(XYZ) df_XYZ.head() Out[12]: Dates Days_To_Maturity Yield 0 5/1/2002 Days 0

我正试图从days-to-Maturity列中去掉天数。所以不是0天,而是0天。我已经尝试了一些方法,但是我想知道是否有一种简单的方法可以在python中实现这一点。谢谢

In[12]:
from pandas import *
XYZ = read_csv('XYZ')
df_XYZ = DataFrame(XYZ)
df_XYZ.head()

Out[12]:
       Dates    Days_To_Maturity    Yield
0    5/1/2002    Days 0                 0.00
1    5/1/2002    Days 1                 0.06
2    5/1/2002    Days 2                 0.12
3    5/1/2002    Days 3                 0.18
4    5/1/2002    Days 4                 0.23
5 rows × 3 columns

您可以探索使用
.str
方法的可能性,或者您可以使用
regex
提取数字,或者获取一个片段
.str.slice
,或者在本例中,将
替换为空字符串:

In [109]:

df.Days_To_Maturity.str.replace('Days ','').astype(int)
Out[109]:
0    0
1    1
2    2
3    3
4    4
Name: Days_To_Maturity, dtype: int32

我认为您正在寻找的解决方案是pandas的read_csv函数的“converters”选项。从帮助(pandas.read_csv)中:

转换器:指令可选
用于转换某些列中的值的函数。键可以是整数或列标签。

因此,您可以制作一个自定义转换器,而不是
read_csv('XYZ')

myconverter={'Days\u To\u Maturity':lambda x:x.split('')[1]}
读取csv('XYZ',converter=myconverter)


这应该行得通。如果有帮助,请告诉我

或者
split
而不是
replace
,例如
df[“到期日”].str.split().str[1].astype(int)
。只需在评论时添加三个其他选项,只需忘记思考
split()
:谢谢你,朱先生,一如既往地乐于助人。你好。非常有帮助!另一种很好的方法,我不知道在导入时修改数据的能力。多谢。