gpt4 book ai didi

python - 根据第一个字符对列列表(年份)进行切片

转载 作者:太空宇宙 更新时间:2023-11-03 14:19:10 27 4
gpt4 key购买 nike

我已经从 df 中提取了列列表,这些列是字符串类型,如下所示:1999-1(如 1999 年第一个月)。

我想删除 2000 年之前的所有列,因此我提取了列列表并使用列表理解来检查字符串的第一个字符是否为 1。

代码运行,但我的“columns_to_drop”列表为空。

def convert_housing_data_to_quarters():
data_source = pd.read_csv('City_Zhvi_AllHomes.csv') #this is the df
data_source['State'] = data_source['State'].map(states)
data_source.drop(['Metro','CountyName','RegionID','SizeRank'],axis=1,inplace=1)
data_source.set_index(['State','RegionName'],inplace=True)
columns = list(data_source.columns)
columns_to_drop = [col for col in columns if col[0]=="1"]
data_source.drop(columns_to_drop,axis=1,inplace=1)
return data_source

convert_housing_data_to_quarters()

最佳答案

我相信你可以使用:

df = pd.DataFrame(columns=['1999-1','2000-1','2000-10'])

df = df.loc[:, pd.to_datetime(df.columns, format='%Y-%m').year >= 2000]
print (df)

Empty DataFrame
Columns: [2000-1, 2000-10]
Index: []

或者:

df = df.loc[:, df.columns.str[0] != '1']

print (df)
Empty DataFrame
Columns: [2000-1, 2000-10]
Index: []

一起:

def convert_housing_data_to_quarters():
#set index from columns in read csv
data_source = pd.read_csv('City_Zhvi_AllHomes.csv', index_col=['State','RegionName'])
data_source.drop(['Metro','CountyName','RegionID','SizeRank'],axis=1,inplace=True)
data_source = data_source.loc[:, data_source.columns.str[0] != '1']
return data_source

df = convert_housing_data_to_quarters()
print (df.columns)
Index(['2000-01', '2000-02', '2000-03', '2000-04', '2000-05', '2000-06',
'2000-07', '2000-08', '2000-09', '2000-10',
...
'2017-02', '2017-03', '2017-04', '2017-05', '2017-06', '2017-07',
'2017-08', '2017-09', '2017-10', '2017-11'],
dtype='object', length=215)

关于python - 根据第一个字符对列列表(年份)进行切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48057033/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com