On 03/31/2017 10:50 AM, Peter Otten wrote:
Stephen P. Molnar wrote:
I have a block of data extracted from a quantum mechanical calculation:
CARTESIAN COORDINATES (A.U.)
----------------------------
NO LB ZA FRAG MASS X Y Z
0 C 6.0000 0 12.011 -3.265636 0.198894 0.090858
1 C 6.0000 0 12.011 -1.307161 1.522212 1.003463
2 C 6.0000 0 12.011 1.213336 0.948208 -0.033373
3 N 7.0000 0 14.007 3.238650 1.041523 1.301322
4 C 6.0000 0 12.011 -5.954489 0.650878 0.803379
5 C 6.0000 0 12.011 5.654476 0.480066 0.013757
where the number of lines depends upon the molecule being considered.
I want to extract the block of data starting on line 4 and column 4.
Unfortunately, the only programming language in which I used to be
competent in is Fortran. I have attempted researching this problem, but
have only succeeded in increasing my mental entropy.
Help will be much appreciated. Thanks in advance.
pandas is the swiss army knife of data manipulation in Python -- albeit with
a non-negligable learning curve. Some examples (from an amateur):
$ cat data.txt
CARTESIAN COORDINATES (A.U.)
----------------------------
NO LB ZA FRAG MASS X Y Z
0 C 6.0000 0 12.011 -3.265636 0.198894 0.090858
1 C 6.0000 0 12.011 -1.307161 1.522212 1.003463
2 C 6.0000 0 12.011 1.213336 0.948208 -0.033373
3 N 7.0000 0 14.007 3.238650 1.041523 1.301322
4 C 6.0000 0 12.011 -5.954489 0.650878 0.803379
5 C 6.0000 0 12.011 5.654476 0.480066 0.013757
$ python3
Python 3.4.3 (default, Nov 17 2016, 01:08:31)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
import pandas
table = pandas.read_table("data.txt", skiprows=2, delimiter=" ",
skipinitialspace=True)
table
NO LB ZA FRAG MASS X Y Z
0 0 C 6 0 12.011 -3.265636 0.198894 0.090858
1 1 C 6 0 12.011 -1.307161 1.522212 1.003463
2 2 C 6 0 12.011 1.213336 0.948208 -0.033373
3 3 N 7 0 14.007 3.238650 1.041523 1.301322
4 4 C 6 0 12.011 -5.954489 0.650878 0.803379
5 5 C 6 0 12.011 5.654476 0.480066 0.013757
[6 rows x 8 columns]
table[3:]
NO LB ZA FRAG MASS X Y Z
3 3 N 7 0 14.007 3.238650 1.041523 1.301322
4 4 C 6 0 12.011 -5.954489 0.650878 0.803379
5 5 C 6 0 12.011 5.654476 0.480066 0.013757
[3 rows x 8 columns]
table[["X", "Y", "Z"]]
X Y Z
0 -3.265636 0.198894 0.090858
1 -1.307161 1.522212 1.003463
2 1.213336 0.948208 -0.033373
3 3.238650 1.041523 1.301322
4 -5.954489 0.650878 0.803379
5 5.654476 0.480066 0.013757
[6 rows x 3 columns]
table.MASS.mean()
12.343666666666666
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor
Problem solved!
Many thanks.
--
Stephen P. Molnar, Ph.D. Life is a fuzzy set
www.molecular-modeling.net Stochastic and multivariate
(614)312-7528 (c)
Skype: smolnar1
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor