如何删除从csv导入的python dataframe中的部分数据?
我正试图从days-to-Maturity列中去掉天数。所以不是0天,而是0天。我已经尝试了一些方法,但是我想知道是否有一种简单的方法可以在python中实现这一点。谢谢如何删除从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
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()
:谢谢你,朱先生,一如既往地乐于助人。你好。非常有帮助!另一种很好的方法,我不知道在导入时修改数据的能力。多谢。