gpt4 book ai didi

python - 切片 Pandas Dataframe 时如何返回索引

转载 作者:行者123 更新时间:2023-12-01 03:42:17 26 4
gpt4 key购买 nike

 df2=   pd.DataFrame(df1.iloc[:, [n for n in random.sample(range(1, 7), 3)]])

returns df1 rows and selected columns but it returns a generic index 0,1,2,3..etc instead of returning the Datetime index of df1 which is what I want to keep. I tried:

df2=df1.copy(deep=True)

df2= pd.DataFrame(data=None, columns=df1.columns, index=df1.index)
df2= df1.iloc[:, [n for n in random.sample(range(1, 7), 3)]]

但它不起作用......

最佳答案

试试这个:

df2 = pd.DataFrame(df1.ix[:,random.sample(range(1,7),3)])

这将给出您想要的结果。

df1
Out[130]:
one two
d NaN 4.0
b 2.0 2.0
c 3.0 3.0
a 1.0 1.0

df1.ix[:,random.sample(range(0,2),2)]
Out[131]:
two one
d 4.0 NaN
b 2.0 2.0
c 3.0 3.0
a 1.0 1.0

这将对您的列进行随机采样并将其返回到 df2 中。这将返回随机采样列的所有行,其索引与 df1 中相同。

编辑-正如 MaxU 所建议的,您可以简单地使用:

df2 = df1.ix[:, random.sample(df.columns.tolist(), 3)].copy()

而不是调用 pd.DataFrame() 构造函数。

关于python - 切片 Pandas Dataframe 时如何返回索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39374871/

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