2024-09-18 15:21:58 发布
网友
有没有一种方法可以在不指定所有列的情况下从数据帧中提取列的子集。e、 我有数据帧和foll。柱: str_ID, num_ID, 1990, 1991, 1992, 1993, 1994, 1995我想从1990开始提取列。没有硬编码我怎么做?你知道吗
str_ID, num_ID, 1990, 1991, 1992, 1993, 1994, 1995
1990
df.columns.values array(['str_ID', 'num_ID', 1990, 1991, 1992, 1993, 1994, 1995], dtype=object)
另一个选项,如果标题是字符串,并且1900年之前没有年份:
df = pd.DataFrame({'str_ID':[4,2,4,5,5,4], 'num_ID': [4,2,4,5,5,4], '1990':[4,3,1,2,2,4], '1991':[1,2,4,5,5,3], '1992':[4,3,2,2,2,4], '1993':[4,3,2,2,2,4]}) print df 1990 1991 1992 1993 num_ID str_ID 0 4 1 4 4 4 4 1 3 2 3 3 2 2 2 1 4 2 2 4 4 3 2 5 2 2 5 5 4 2 5 2 2 5 5 5 4 3 4 4 4 4 columns = [x for x in df.columns if (x>=1990 and x.isdigit())] df = df[columns] print df
输出:
1990 1991 1992 1993 0 4 1 4 4 1 3 2 3 3 2 1 4 2 2 3 2 5 2 2 4 2 5 2 2 5 4 3 4 4
您可以对数据框的列使用条件理解(假设年份的列标题是整数):
df[sorted(col for col in df if isinstance(col, int) and col >= 1990)]
此选项过滤大于或等于1990的整数列,并按排序顺序返回结果。你知道吗
另一个选项,如果标题是字符串,并且1900年之前没有年份:
输出:
您可以对数据框的列使用条件理解(假设年份的列标题是整数):
此选项过滤大于或等于1990的整数列,并按排序顺序返回结果。你知道吗
相关问题 更多 >
编程相关推荐