gpt4 book ai didi

python - Pandas read_csv usecols 相同的索引

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

考虑以下代码:

import pandas as pd
from StringIO import StringIO
x='''
a,b,c,d
1,2,3,4
5,6,7,8
9,10,11,12
13,14,15,16
17,18,19,20
'''

df = pd.read_csv(StringIO(x), skipinitialspace=True, usecols=[2,3,2])
print df

输出:

    c   d0   3   41   7   82  11  123  15  164  19  20

有什么办法可以得到

    c   d    c0   3   4    31   7   8    72  11  12    113  15  16    154  19  20    19

最佳答案

您可以使用 iloc[]索引器:

In [67]: pd.read_csv(StringIO(x), skipinitialspace=True).iloc[:, [2,3,2]]
Out[67]:
c d c
0 3 4 3
1 7 8 7
2 11 12 11
3 15 16 15
4 19 20 19

但是作为@Boud has already mentioned in comments使用 usecols 参数会更有效率(因为我们不需要解析我们不需要的列,我们不会为它们浪费内存),如果你知道CSV 文件中的列名:

In [6]: pd.read_csv(StringIO(x), skipinitialspace=True, usecols=[2,3,2]).loc[:, ['c','d','c']]
Out[6]:
c d c
0 3 4 3
1 7 8 7
2 11 12 11
3 15 16 15
4 19 20 19

或者如果您知道他们的索引(在新 DataFrame 中):

In [7]: pd.read_csv(StringIO(x), skipinitialspace=True, usecols=[2,3,2]).iloc[:, [0,1,0]]
Out[7]:
c d c
0 3 4 3
1 7 8 7
2 11 12 11
3 15 16 15
4 19 20 19

PS 你可能还想阅读关于 Pandas boolean indexing 的内容

关于python - Pandas read_csv usecols 相同的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41450157/

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