python Pandas 读取数据,写

2023-01-31 05:01:42 python 数据 读取

pandas 选取数据 iloc和 loc的用法不太一样,iloc是根据索引, loc是根据行的数值

>>> import pandas as pd
>>> import os
>>> os.chdir("D:\\")
>>> d = pd.read_csv("GWAS_water.qassoc", delimiter= "\s+")
>>> d.loc[1:3]
   CHR SNP   BP  NMISS    BETA      SE       R2      T       P
1    1   .  447     44  0.1800  0.1783  0.02369  1.009  0.3185
2    1   .  449     44  0.2785  0.2473  0.02931  1.126  0.2665
3    1   .  452     44  0.1800  0.1783  0.02369  1.009  0.3185

>>> d.loc[0:3]
   CHR SNP   BP  NMISS    BETA      SE       R2      T       P
0    1   .  410     44  0.2157  0.1772  0.03406  1.217  0.2304
1    1   .  447     44  0.1800  0.1783  0.02369  1.009  0.3185
2    1   .  449     44  0.2785  0.2473  0.02931  1.126  0.2665
3    1   .  452     44  0.1800  0.1783  0.02369  1.009  0.3185

>>> d.iloc[0:3]
   CHR SNP   BP  NMISS    BETA      SE       R2      T       P
0    1   .  410     44  0.2157  0.1772  0.03406  1.217  0.2304
1    1   .  447     44  0.1800  0.1783  0.02369  1.009  0.3185
2    1   .  449     44  0.2785  0.2473  0.02931  1.126  0.2665


>>> d.iloc[1:3,2]
1    447
2    449
Name: BP, dtype: int64

>>> d.iloc[0:3,2]
0    410
1    447
2    449
Name: BP, dtype: int64

>>> d.head()
   CHR SNP   BP  NMISS    BETA      SE       R2       T       P
0    1   .  410     44  0.2157  0.1772  0.03406  1.2170  0.2304
1    1   .  447     44  0.1800  0.1783  0.02369  1.0090  0.3185
2    1   .  449     44  0.2785  0.2473  0.02931  1.1260  0.2665
3    1   .  452     44  0.1800  0.1783  0.02369  1.0090  0.3185
4    1   .  462     44  0.2548  0.2744  0.02012  0.9286  0.3584

>>> d.tail(3)
        CHR SNP        BP  NMISS    BETA      SE       R2       T      P
418704   12   .  19345588     44 -0.2207  0.2558  0.01743 -0.8631  0.393
418705   12   .  19345598     44 -0.2207  0.2558  0.01743 -0.8631  0.393
418706   12   .  19345611     44 -0.2207  0.2558  0.01743 -0.8631  0.393

>>> d.describe()
                 CHR            BP     NMISS          BETA            SE  \
count  418707.000000  4.187070e+05  418707.0  4.186820e+05  418682.00000
mean        5.805738  1.442822e+07      44.0 -4.271777e-03       0.21433
std         3.392930  8.933882e+06       0.0  2.330019e-01       0.05190
min         1.000000  4.100000e+02      44.0 -1.610000e+00       0.10130
25%         3.000000  7.345860e+06      44.0 -1.638000e-01       0.17320
50%         5.000000  1.371612e+07      44.0 -1.826000e-16       0.20670
75%         9.000000  2.051322e+07      44.0  1.391000e-01       0.25010
max        12.000000  4.238896e+07      44.0  1.467000e+00       0.67580

                  R2             T             P
count  418682.000000  4.186820e+05  4.186820e+05
mean        0.026268 -1.910774e-02  4.772397e-01
std         0.035903  1.095115e+00  2.944290e-01
min         0.000000 -5.582000e+00  2.034000e-08
25%         0.002969 -7.955000e-01  2.179000e-01
50%         0.012930 -8.468000e-16  4.624000e-01
75%         0.035910  6.712000e-01  7.254000e-01
max         0.531200  6.898000e+00  1.000000e+00

>>> d.sort_values(by="P").iloc[0:15]
        CHR SNP        BP  NMISS    BETA      SE      R2      T             P
42870     1   .  32316680     44  1.1870  0.1721  0.5312  6.898  2.034000e-08
29301     1   .  22184568     44  1.1870  0.1721  0.5312  6.898  2.034000e-08
29302     1   .  22184590     44  1.1870  0.1721  0.5312  6.898  2.034000e-08
29306     1   .  22184654     44  1.1870  0.1721  0.5312  6.898  2.034000e-08
29305     1   .  22184628     44  1.1870  0.1721  0.5312  6.898  2.034000e-08
29304     1   .  22184624     44  1.1870  0.1721  0.5312  6.898  2.034000e-08
112212    3   .  14365699     44  1.4670  0.2255  0.5018  6.504  7.490000e-08
29254     1   .  22167448     44  1.0780  0.1723  0.4822  6.254  1.713000e-07
69291     2   .   9480651     44  1.1140  0.1829  0.4690  6.091  2.939000e-07
29299     1   .  22180991     44  0.8527  0.1458  0.4488  5.848  6.574000e-07
101391    3   .   6959715     44  0.6782  0.1166  0.4462  5.817  7.285000e-07
29333     1   .  22198267     44  0.9252  0.1616  0.4383  5.724  9.888000e-07
195513    5   .  20178388     44  1.0350  0.1817  0.4359  5.697  1.082000e-06
29295     1   .  22180901     44  0.7469  0.1320  0.4324  5.657  1.236000e-06
29300     1   .  22181119     44  0.7469  0.1320  0.4324  5.657  1.236000e-06
>>> sort_D = d.sort_values(by="P").iloc[0:5]
>>> m_D = d.dropna()           #remove NA

>>> sort_C = d.sort_values(["P","CHR", "BP"])
>>> sort_C.to_csv(file_name, sep='\t', encoding='utf-8')


>>> d.sort_values(by="C", ascending=True)


>>> sort_D.to_csv("result.txt", sep= " ")
>>> sort_D.to_csv("result_no_index.txt", sep= " ", index=False)
>>>


参考:

for m, i in enumerate(list(range(1,10))):    
    for n, j in enumerate(list(range(m+1,10))):    
        print i * j


Http://stackoverflow.com/questions/25943208/using-pandas-read-csv-on-an-open-file-twice


https://GitHub.com/lijin-THU/notes-python



相关文章