gpt4 book ai didi

python - 从现有表和列表创建新表

转载 作者:行者123 更新时间:2023-12-02 18:05:07 24 4
gpt4 key购买 nike

我正在读取一个表格数据文件,如下所示(为了解决这个问题而缩短):

  ID Ah Am  RAs  Ed Em  DEs   Vmag    U-B    B-V    V-I    e_    e_    e_    e_ _ _ _ _ mb n_ 2MASS
1 10 42 57.6 -59 47 22.6 18.681 1.105 1.461 0.002 0.103 0.053 2 0 1 2 10425765-5947229
2 10 42 57.7 -59 44 22.2 18.303 2.764 0.012 0.013 2 0 0 2
3 10 42 57.7 -59 46 58.0 18.610 1.573 0.038 0.039 2 0 0 2 10425776-5946583
4 10 42 57.8 -59 47 49.5 12.870 0.764 0.799 0.009 0.009 0.009 3 0 1 3 10425773-5947495
5 10 42 57.8 -59 44 03.4 18.815 1.072 1.433 0.017 0.110 0.043 2 0 1 2
6 10 42 57.8 -59 48 29.3 18.697 1.304 0.014 0.019 2 0 0 2 10425778-5948293
7 10 42 57.8 -59 44 08.5 17.817 1.700 2.384 0.011 0.108 0.013 2 0 1 2 10425786-5944083
8 10 42 57.9 -59 43 11.1 18.621 0.925 1.322 0.014 0.084 0.014 2 0 1 2
9 10 42 58.0 -59 41 34.4 16.993 0.998 1.742 0.003 0.027 0.003 3 0 1 3 10425799-5941342
10 10 42 58.0 -59 49 23.3 16.981 0.656 1.043 0.023 0.034 0.023 3 0 1 3 10425796-5949235
11 10 42 58.1 -59 48 20.2 17.047 0.926 1.003 0.009 0.034 0.017 3 0 1 3
12 10 42 58.1 -59 47 51.5 17.535 0.879 1.197 0.008 0.071 0.035 2 0 1 2
13 10 42 58.2 -59 47 16.9 15.982 0.854 1.146 0.006 0.011 0.008 3 0 1 3 10425820-5947169
14 10 42 58.2 -59 36 10.2 18.855 1.376 0.051 0.069 2 0 0 2
15 10 42 58.2 -59 49 29.5 17.959 0.830 1.229 0.027 0.060 0.027 2 0 1 2 10425821-5949297
16 10 42 58.2 -59 45 39.7 18.556 1.114 1.520 0.001 0.103 0.007 2 0 1 2
17 10 42 58.3 -59 48 59.5 18.659 1.252 2.013 0.000 0.126 0.018 2 0 1 2 10425824-5948595
18 10 42 58.3 -59 48 17.9 15.417 0.707 0.874 0.002 0.010 0.002 3 0 1 3 10425825-5948180
19 10 42 58.3 -59 39 51.6 16.899 1.050 1.204 0.009 0.026 0.010 3 0 1 3 10425833-5939512
20 10 42 58.3 -59 42 39.3 18.011 1.016 1.452 0.002 0.068 0.014 2 0 1 2 10425834-5942390
df = pd.read_fwf('Hur_et_al_2012_catalog/table1.dat', infer_nrows=1001)

我还有一个看起来像这样的列表(也缩短了)

total_sources = ['7', '9', '19']

total_sources 中的元素编号对应于第一个表的 ID 列。有没有办法创建第二个表,仅包含 total_sources 中列出的 ID 信息?因此,对于此示例,表格仅显示 ID 7、9 和 19 的信息。

最佳答案

import pandas as pd

df = pd.read_fwf('table1.dat', infer_nrows=1001)

total_sources = ['7', '9', '19']
rows = [int(x) for x in total_sources]
df_filtered = df[df['ID'].isin(rows)]
df_filtered

结果:

    ID  Ah  Am  RAs     Ed  Em  DEs     Vmag    U-B     B-V     ...     e_.1    e_.2    e_.3    _   _.1     _.2     _.3     mb  n_  2MASS
6 7 10 42 57.8 -59 44 8.5 17.817 NaN 1.700 ... NaN 0.108 0.013 2 0 1 2 NaN NaN 10425786-5944083
8 9 10 42 58.0 -59 41 34.4 16.993 NaN 0.998 ... NaN 0.027 0.003 3 0 1 3 NaN NaN 10425799-5941342
18 19 10 42 58.3 -59 39 51.6 16.899 NaN 1.050 ... NaN 0.026 0.010 3 0 1 3 NaN NaN 10425833-5939512

关于python - 从现有表和列表创建新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73450636/

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