I am working with a pandas dataframe of 15 rows and 8 columns, such a:
A B ... G H
0 0.158979 0.187282 ... 0.330566 0.458748
1 0.227254 0.273307 ... 0.489372 0.649698
2 0.308775 0.351285 ... 0.621399 0.833404
3 0.375850 0.444228 ... 0.759206 0.929980
4 0.431860 0.507906 ... 0.850741 1.038544
5 0.507219 0.596291 ... 0.980404 1.145819
6 0.570170 0.676551 ... 1.094201 1.282077
7 0.635122 0.750434 ... 1.155645 1.292930
8 0.704220 0.824748 ... 1.261516 1.395316
9 0.762619 0.887669 ... 1.337860 1.410864
10 0.824553 0.968889 ... 1.407665 1.437886
11 0.893413 1.045289 ... 1.519902 1.514017
12 0.946757 1.109964 ... 1.561611 1.478634
13 1.008294 1.174139 ... 1.596135 1.501220
14 1.053086 1.227203 ... 1.624630 1.503892
where columns from C to F have been omitted.
I would like to know how I can find the closest value to 1 for every column. Once this value is found I would like to replace the rest of the values in the columns by NaN, with the exception of the values corresponding to the previous and next row. Then obtaining a dataframe like that:
A B ... G H
0 NaN NaN ... NaN NaN
1 NaN NaN ... NaN NaN
2 NaN NaN ... NaN NaN
3 NaN NaN ... NaN 0.929980
4 NaN NaN ... 0.850741 1.038544
5 NaN NaN ... 0.980404 1.145819
6 NaN NaN ... 1.094201 NaN
7 NaN NaN ... NaN NaN
8 NaN NaN ... NaN NaN
9 NaN 0.887669 ... NaN NaN
10 NaN 0.968889 ... NaN NaN
11 NaN 1.045289 ... NaN NaN
12 0.946757 NaN ... NaN NaN
13 1.008294 NaN ... NaN NaN
14 1.053086 NaN ... NaN NaN
Does anyone has a sugestion for this?
Thanks in advance
you can use the fact that the closest to 1 is actually the min of the abs of df once remove 1. So check where the min is meet, use shift once with 1 and once with -1 to get the next and previous row. use this mask in where.
df_ = (df-1).abs()
df_ = df_.min() == df_
df_ = df_|df_.shift(1)|df_.shift(-1)
df_ = df.where(df_)
print(df_)
A B G H
0 NaN NaN NaN NaN
1 NaN NaN NaN NaN
2 NaN NaN NaN NaN
3 NaN NaN NaN 0.929980
4 NaN NaN 0.850741 1.038544
5 NaN NaN 0.980404 1.145819
6 NaN NaN 1.094201 NaN
7 NaN NaN NaN NaN
8 NaN NaN NaN NaN
9 NaN 0.887669 NaN NaN
10 NaN 0.968889 NaN NaN
11 NaN 1.045289 NaN NaN
12 0.946757 NaN NaN NaN
13 1.008294 NaN NaN NaN
14 1.053086 NaN NaN NaN
I have a pandas dataframe like this:
In [31]: df.pivot(index='orderid', columns='C', values='productid')
Out [31]:
C 1 2 3 4 5 6 7 8 9 10 ... 71 72 73 74 75 76 77 78 79 80
orderid
20000765 624380 nan nan nan nan nan nan nan nan nan ... nan nan nan nan nan nan nan nan nan nan
20000766 624380 nan nan nan nan nan nan nan nan nan ... nan nan nan nan nan nan nan nan nan nan
20000768 1305984 1305985 1305983 1306021 nan nan nan nan nan nan ... nan nan nan nan nan nan nan nan nan nan
I would like to delete the first column. However, when I do that the table unpivots again.
What I can I do to delete the "C" / "Orderid" column and the numbers underneath it?
I am trying to figure out how to do merge. I have a labels.csv which contains the names that I have to use to replace the numbers for the same field in my dat.csv
My dat.csv is as follows:
Id,Help in household,Maths,Reading,Science,Social
11011001001,4,20.37,,27.78,
11011001002,3,12.96,,38.18,
11011001003,4,27.78,70,,
11011001004,4,,56.67,,36
11011001005,1,,,14.55,8.33
11011001006,4,,23.33,,30
11011001007,4,40.74,70,,
11011001008,3,,26.67,,22.92
11011001009,2,24.07,,25.45,
11011001010,4,18.52,26.67,,
11011001012,2,37.04,16.67,,
11011001013,4,20.37,,20,
11011001014,2,,,29.63,35.42
11011001015,4,27.78,66.67,,
11011001016,0,18.52,,,
11011001017,4,,,42.59,32
11011001018,2,16.67,,,
11011001019,3,,,21.82,
11011001020,4,,20,,16
11011001021,1,,,18.52,16.67
My labels.csv is as follows:
Column,Name,Level,Rename
Help in household,Every day,4,Every day
Help in household,Never,1,Never
Help in household,Once a month,2,Once a month
Help in household,Once a week,3,Once a week
my programme is as follows:
import pandas as pd
df = pd.read_csv('dat.csv')
labels = pd.read_csv('labels.csv')
df=df.merge(labels,left_on='Help in household',right_on='Name',how='left')
print df
However, the names do not appear as I want them to.
STUID Help in household Maths % Reading % Science % Social % \
0 11011001001 4 20.37 NaN 27.78 NaN
1 11011001002 3 12.96 NaN 38.18 NaN
2 11011001003 4 27.78 70.00 NaN NaN
3 11011001004 4 NaN 56.67 NaN 36.00
4 11011001005 1 NaN NaN 14.55 8.33
5 11011001006 4 NaN 23.33 NaN 30.00
6 11011001007 4 40.74 70.00 NaN NaN
7 11011001008 3 NaN 26.67 NaN 22.92
8 11011001009 2 24.07 NaN 25.45 NaN
9 11011001010 4 18.52 26.67 NaN NaN
10 11011001012 2 37.04 16.67 NaN NaN
11 11011001013 4 20.37 NaN 20.00 NaN
12 11011001014 2 NaN NaN 29.63 35.42
13 11011001015 4 27.78 66.67 NaN NaN
14 11011001016 0 18.52 NaN NaN NaN
15 11011001017 4 NaN NaN 42.59 32.00
16 11011001018 2 16.67 NaN NaN NaN
17 11011001019 3 NaN NaN 21.82 NaN
18 11011001020 4 NaN 20.00 NaN 16.00
19 11011001021 1 NaN NaN 18.52 16.67
Column Name Level Rename
0 NaN NaN NaN NaN
1 NaN NaN NaN NaN
2 NaN NaN NaN NaN
3 NaN NaN NaN NaN
4 NaN NaN NaN NaN
5 NaN NaN NaN NaN
6 NaN NaN NaN NaN
7 NaN NaN NaN NaN
8 NaN NaN NaN NaN
9 NaN NaN NaN NaN
10 NaN NaN NaN NaN
11 NaN NaN NaN NaN
12 NaN NaN NaN NaN
13 NaN NaN NaN NaN
14 NaN NaN NaN NaN
15 NaN NaN NaN NaN
16 NaN NaN NaN NaN
17 NaN NaN NaN NaN
18 NaN NaN NaN NaN
19 NaN NaN NaN NaN
What am I doing wrong?
Okay, is this what you want?
df['Name'] = df['Help in household'].map(labels.set_index('Level')['Name'])
Output:
Id Help in household Maths Reading Science Social \
0 11011001001 4 20.37 NaN 27.78 NaN
1 11011001002 3 12.96 NaN 38.18 NaN
2 11011001003 4 27.78 70.00 NaN NaN
3 11011001004 4 NaN 56.67 NaN 36.00
4 11011001005 1 NaN NaN 14.55 8.33
5 11011001006 4 NaN 23.33 NaN 30.00
6 11011001007 4 40.74 70.00 NaN NaN
7 11011001008 3 NaN 26.67 NaN 22.92
8 11011001009 2 24.07 NaN 25.45 NaN
9 11011001010 4 18.52 26.67 NaN NaN
10 11011001012 2 37.04 16.67 NaN NaN
11 11011001013 4 20.37 NaN 20.00 NaN
12 11011001014 2 NaN NaN 29.63 35.42
13 11011001015 4 27.78 66.67 NaN NaN
14 11011001016 0 18.52 NaN NaN NaN
15 11011001017 4 NaN NaN 42.59 32.00
16 11011001018 2 16.67 NaN NaN NaN
17 11011001019 3 NaN NaN 21.82 NaN
18 11011001020 4 NaN 20.00 NaN 16.00
19 11011001021 1 NaN NaN 18.52 16.67
Name
0 Every day
1 Once a week
2 Every day
3 Every day
4 Never
5 Every day
6 Every day
7 Once a week
8 Once a month
9 Every day
10 Once a month
11 Every day
12 Once a month
13 Every day
14 NaN
15 Every day
16 Once a month
17 Once a week
18 Every day
19 Never
I have used pandas library to combine two csv files using pandas but i am not
getting desired result.In out.csv i m getting only column names.It seems like dropna function is not working after seeing Code 3 and Code 4.Please suggest me how should do it.First it was showing error dtype and low_memory so i used low_memory=false.After that also i am not getting right answer.
Code1:
import pandas as pd
a = pd.read_csv("true.csv",low_memory=False)
b = pd.read_csv("false.csv",low_memory=False)
#print b
#a=a.dropna(axis=1,how="all")
b = b.dropna(axis=1,how="all")
#print a
merged = a.merge(b, on='Name')
merged.to_csv("out.csv", index=False)
Output1:
out.csv
CMD shows no error
Code 2:
import pandas as pd
a = pd.read_csv("true.csv",low_memory=False)
b = pd.read_csv("false.csv",low_memory=False)
#print b
a=a.dropna(axis=1,how="all")
b = b.dropna(axis=1,how="all")
#print a
merged = a.merge(b, on='Name')
merged.to_csv("out.csv", index=False)
Same out.csv
CMD shows no error
Code 3:
import pandas as pd
a = pd.read_csv("true.csv",low_memory=False)
b = pd.read_csv("false.csv",low_memory=False)
print b
a=a.dropna(axis=1,how="all")
b = b.dropna(axis=1,how="all")
#print a
merged = a.merge(b, on='Name')
merged.to_csv("out.csv", index=False)
same out.csv
CMD output
Name nAcid ALogP ALogp2 AMR apol \
0 NCGC00090868-05 0 2.5092 6.296085 24.6331 11.087793
1 NCGC00258574-01 0 0.8580 0.736164 41.2286 25.019102
2 NCGC00256074-01 0 -1.2663 1.603516 29.8524 20.967516
3 NCGC00255887-01 0 -3.8723 14.994707 63.0584 48.122204
4 NCGC00257684-01 0 0.3201 0.102464 19.9881 15.227930
5 NCGC00255836-01 0 0.1835 0.033672 74.3973 37.687516
6 NCGC00255339-01 0 0.6030 0.363609 79.6663 44.210274
7 NCGC00254895-01 0 -0.0924 0.008538 50.8863 26.247516
8 NCGC00256627-01 0 1.6628 2.764904 50.8229 27.737102
9 NCGC00257445-01 0 -0.4644 0.215667 46.3842 24.281516
10 NCGC00256994-01 0 3.2104 10.306668 53.1445 30.028688
11 NCGC00256081-01 0 -0.1228 0.015080 43.5826 25.885516
12 NCGC00159473-05 0 2.1059 4.434815 62.4027 37.406481
13 NCGC00258886-01 0 0.5738 0.329246 24.9723 13.362758
14 NCGC00260536-01 0 1.5363 2.360218 91.9810 49.983860
15 NCGC00259214-01 0 -2.0207 4.083228 58.4309 40.459860
16 NCGC00254775-01 0 1.0180 1.036324 92.7307 47.861860
17 NCGC00257097-01 0 -0.8815 0.777042 44.2151 32.539860
18 NCGC00255059-01 0 0.8289 0.687075 54.5365 29.737516
19 NCGC00258829-01 0 0.6531 0.426540 38.7876 22.267930
20 NCGC00254435-01 0 -1.7996 3.238560 51.4988 41.589446
21 NCGC00256760-01 0 -1.9832 3.933082 37.0772 30.942653
22 NCGC00255967-01 1 NaN NaN NaN 21.685516
23 NCGC00094572-12 0 3.2214 10.377418 100.9937 52.076239
24 NCGC00256955-01 0 1.1604 1.346528 30.5714 16.447965
25 NCGC00258571-01 0 -0.4011 0.160881 46.3328 26.965516
26 NCGC00018221-08 1 1.7889 3.200163 81.6449 38.198723
27 NCGC00257404-01 0 0.4681 0.219118 48.5267 25.783516
28 NCGC00024595-08 0 0.9066 0.821924 97.5488 59.376583
29 NCGC00095099-05 3 -2.8747 8.263900 165.3811 92.940134
... ... ... ... ... ... ...
7692 NCGC00024309-17 0 1.1271 1.270354 123.3780 64.364618
7693 NCGC00092377-04 0 1.2781 1.633540 127.4281 65.573446
7694 NCGC00249894-01 2 0.9889 0.977923 93.7563 48.803895
7695 NCGC00258493-01 0 3.6334 13.201596 60.1071 25.220379
7696 NCGC00092328-02 1 0.9264 0.858217 117.7120 63.380618
7697 NCGC00015496-08 0 -3.4028 11.579048 55.2510 43.323790
7698 NCGC00255845-01 0 NaN NaN NaN 197.835924
7699 NCGC00255892-01 0 0.4437 0.196870 77.3472 40.541895
7700 NCGC00257628-01 0 2.3992 5.756161 30.7638 13.573586
7701 NCGC00095795-06 0 1.7370 3.017169 62.7555 28.529551
7702 NCGC00259502-01 0 1.7456 3.047119 67.2834 32.485516
7703 NCGC00254185-01 0 1.9464 3.788473 46.7099 19.902379
7704 NCGC00254078-01 0 1.9464 3.788473 46.7099 19.902379
7705 NCGC00259798-01 0 0.7592 0.576385 30.1050 14.373965
7706 NCGC00255984-01 0 4.3541 18.958187 97.1672 47.655895
7707 NCGC00258735-01 0 2.2459 5.044067 86.0636 43.796688
7708 NCGC00257478-01 0 5.1368 26.386714 95.2848 52.536618
7709 NCGC00163355-05 0 -0.2722 0.074093 84.3928 38.631930
7710 NCGC00254263-01 0 NaN NaN NaN 47.128758
7711 NCGC00260266-01 0 0.9368 0.877594 35.3574 21.567930
7712 NCGC00258239-01 0 2.3709 5.621167 75.0245 37.339102
7713 NCGC00257750-01 0 0.5695 0.324330 49.8130 25.248758
7714 NCGC00256348-01 0 0.2874 0.082599 41.9237 19.847551
7715 NCGC00254098-01 0 1.5354 2.357453 61.0800 33.663102
7716 NCGC00015563-13 0 1.6130 2.601769 97.3830 51.643032
7717 NCGC00258606-01 0 0.8041 0.646577 26.4598 15.491551
7718 NCGC00254798-01 0 -1.2646 1.599213 86.3007 41.545516
7719 NCGC00092310-06 0 -1.8789 3.530265 96.8643 57.331411
7720 NCGC00022043-06 0 0.6243 0.389750 102.7615 65.025376
7721 NCGC00257951-01 0 -0.2697 0.072738 142.9587 88.813306
naAromAtom nAromBond nAtom nHeavyAtom ... P1s P2s E1s E2s E3s \
0 0 0 8 7 ... NaN NaN NaN NaN NaN
1 0 0 24 10 ... NaN NaN NaN NaN NaN
2 0 0 21 9 ... NaN NaN NaN NaN NaN
3 0 0 48 20 ... NaN NaN NaN NaN NaN
4 0 0 15 5 ... NaN NaN NaN NaN NaN
5 0 0 32 20 ... NaN NaN NaN NaN NaN
6 0 0 38 20 ... NaN NaN NaN NaN NaN
7 0 0 24 12 ... NaN NaN NaN NaN NaN
8 0 0 25 11 ... NaN NaN NaN NaN NaN
9 0 0 22 10 ... NaN NaN NaN NaN NaN
10 0 0 27 11 ... NaN NaN NaN NaN NaN
11 0 0 24 12 ... NaN NaN NaN NaN NaN
12 0 0 34 17 ... NaN NaN NaN NaN NaN
13 0 0 12 6 ... NaN NaN NaN NaN NaN
14 0 0 43 23 ... NaN NaN NaN NaN NaN
15 0 0 38 18 ... NaN NaN NaN NaN NaN
16 0 0 42 22 ... NaN NaN NaN NaN NaN
17 0 0 32 12 ... NaN NaN NaN NaN NaN
18 0 0 24 12 ... NaN NaN NaN NaN NaN
19 0 0 19 9 ... NaN NaN NaN NaN NaN
20 0 0 36 14 ... NaN NaN NaN NaN NaN
21 0 0 31 10 ... NaN NaN NaN NaN NaN
22 0 0 21 9 ... NaN NaN NaN NaN NaN
23 0 0 45 22 ... NaN NaN NaN NaN NaN
24 0 0 12 7 ... NaN NaN NaN NaN NaN
25 0 0 24 12 ... NaN NaN NaN NaN NaN
26 0 0 30 19 ... NaN NaN NaN NaN NaN
27 0 0 22 10 ... NaN NaN NaN NaN NaN
28 0 0 55 24 ... NaN NaN NaN NaN NaN
29 0 0 84 46 ... NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ...
7692 0 0 55 29 ... NaN NaN NaN NaN NaN
7693 0 0 53 31 ... NaN NaN NaN NaN NaN
7694 0 0 40 25 ... NaN NaN NaN NaN NaN
7695 0 0 15 12 ... NaN NaN NaN NaN NaN
7696 0 0 54 28 ... NaN NaN NaN NaN NaN
7697 0 0 44 14 ... NaN NaN NaN NaN NaN
7698 0 0 151 83 ... NaN NaN NaN NaN NaN
7699 0 0 33 18 ... NaN NaN NaN NaN NaN
7700 0 0 8 6 ... NaN NaN NaN NaN NaN
7701 0 0 21 14 ... NaN NaN NaN NaN NaN
7702 0 0 27 15 ... NaN NaN NaN NaN NaN
7703 0 0 13 10 ... NaN NaN NaN NaN NaN
7704 0 0 13 10 ... NaN NaN NaN NaN NaN
7705 0 0 11 6 ... NaN NaN NaN NaN NaN
7706 0 0 34 19 ... NaN NaN NaN NaN NaN
7707 0 0 37 21 ... NaN NaN NaN NaN NaN
7708 0 0 46 20 ... NaN NaN NaN NaN NaN
7709 0 0 30 20 ... NaN NaN NaN NaN NaN
7710 0 0 20 14 ... NaN NaN NaN NaN NaN
7711 0 0 17 7 ... NaN NaN NaN NaN NaN
7712 0 0 31 17 ... NaN NaN NaN NaN NaN
7713 0 0 21 15 ... NaN NaN NaN NaN NaN
7714 0 0 16 9 ... NaN NaN NaN NaN NaN
7715 0 0 30 16 ... NaN NaN NaN NaN NaN
7716 0 0 45 21 ... NaN NaN NaN NaN NaN
7717 0 0 14 7 ... NaN NaN NaN NaN NaN
7718 0 0 33 21 ... NaN NaN NaN NaN NaN
7719 0 0 52 25 ... NaN NaN NaN NaN NaN
7720 0 0 59 27 ... NaN NaN NaN NaN NaN
7721 0 0 79 37 ... NaN NaN NaN NaN NaN
Ts As Vs Ks Ds
0 NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN
6 NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN
10 NaN NaN NaN NaN NaN
11 NaN NaN NaN NaN NaN
12 NaN NaN NaN NaN NaN
13 NaN NaN NaN NaN NaN
14 NaN NaN NaN NaN NaN
15 NaN NaN NaN NaN NaN
16 NaN NaN NaN NaN NaN
17 NaN NaN NaN NaN NaN
18 NaN NaN NaN NaN NaN
19 NaN NaN NaN NaN NaN
20 NaN NaN NaN NaN NaN
21 NaN NaN NaN NaN NaN
22 NaN NaN NaN NaN NaN
23 NaN NaN NaN NaN NaN
24 NaN NaN NaN NaN NaN
25 NaN NaN NaN NaN NaN
26 NaN NaN NaN NaN NaN
27 NaN NaN NaN NaN NaN
28 NaN NaN NaN NaN NaN
29 NaN NaN NaN NaN NaN
... .. .. .. .. ..
7692 NaN NaN NaN NaN NaN
7693 NaN NaN NaN NaN NaN
7694 NaN NaN NaN NaN NaN
7695 NaN NaN NaN NaN NaN
7696 NaN NaN NaN NaN NaN
7697 NaN NaN NaN NaN NaN
7698 NaN NaN NaN NaN NaN
7699 NaN NaN NaN NaN NaN
7700 NaN NaN NaN NaN NaN
7701 NaN NaN NaN NaN NaN
7702 NaN NaN NaN NaN NaN
7703 NaN NaN NaN NaN NaN
7704 NaN NaN NaN NaN NaN
7705 NaN NaN NaN NaN NaN
7706 NaN NaN NaN NaN NaN
7707 NaN NaN NaN NaN NaN
7708 NaN NaN NaN NaN NaN
7709 NaN NaN NaN NaN NaN
7710 NaN NaN NaN NaN NaN
7711 NaN NaN NaN NaN NaN
7712 NaN NaN NaN NaN NaN
7713 NaN NaN NaN NaN NaN
7714 NaN NaN NaN NaN NaN
7715 NaN NaN NaN NaN NaN
7716 NaN NaN NaN NaN NaN
7717 NaN NaN NaN NaN NaN
7718 NaN NaN NaN NaN NaN
7719 NaN NaN NaN NaN NaN
7720 NaN NaN NaN NaN NaN
7721 NaN NaN NaN NaN NaN
[7722 rows x 1876 columns]
Code 4:
import pandas as pd
a = pd.read_csv("true.csv",low_memory=False)
b = pd.read_csv("false.csv",low_memory=False)
#print b
a=a.dropna(axis=1,how="all")
b = b.dropna(axis=1,how="all")
print b
merged = a.merge(b, on='Name')
merged.to_csv("out.csv", index=False)
same out.csv
CMD output
Name nAcid ALogP ALogp2 AMR apol \
0 NCGC00090868-05 0 2.5092 6.296085 24.6331 11.087793
1 NCGC00258574-01 0 0.8580 0.736164 41.2286 25.019102
2 NCGC00256074-01 0 -1.2663 1.603516 29.8524 20.967516
3 NCGC00255887-01 0 -3.8723 14.994707 63.0584 48.122204
4 NCGC00257684-01 0 0.3201 0.102464 19.9881 15.227930
5 NCGC00255836-01 0 0.1835 0.033672 74.3973 37.687516
6 NCGC00255339-01 0 0.6030 0.363609 79.6663 44.210274
7 NCGC00254895-01 0 -0.0924 0.008538 50.8863 26.247516
8 NCGC00256627-01 0 1.6628 2.764904 50.8229 27.737102
9 NCGC00257445-01 0 -0.4644 0.215667 46.3842 24.281516
10 NCGC00256994-01 0 3.2104 10.306668 53.1445 30.028688
11 NCGC00256081-01 0 -0.1228 0.015080 43.5826 25.885516
12 NCGC00159473-05 0 2.1059 4.434815 62.4027 37.406481
13 NCGC00258886-01 0 0.5738 0.329246 24.9723 13.362758
14 NCGC00260536-01 0 1.5363 2.360218 91.9810 49.983860
15 NCGC00259214-01 0 -2.0207 4.083228 58.4309 40.459860
16 NCGC00254775-01 0 1.0180 1.036324 92.7307 47.861860
17 NCGC00257097-01 0 -0.8815 0.777042 44.2151 32.539860
18 NCGC00255059-01 0 0.8289 0.687075 54.5365 29.737516
19 NCGC00258829-01 0 0.6531 0.426540 38.7876 22.267930
20 NCGC00254435-01 0 -1.7996 3.238560 51.4988 41.589446
21 NCGC00256760-01 0 -1.9832 3.933082 37.0772 30.942653
22 NCGC00255967-01 1 NaN NaN NaN 21.685516
23 NCGC00094572-12 0 3.2214 10.377418 100.9937 52.076239
24 NCGC00256955-01 0 1.1604 1.346528 30.5714 16.447965
25 NCGC00258571-01 0 -0.4011 0.160881 46.3328 26.965516
26 NCGC00018221-08 1 1.7889 3.200163 81.6449 38.198723
27 NCGC00257404-01 0 0.4681 0.219118 48.5267 25.783516
28 NCGC00024595-08 0 0.9066 0.821924 97.5488 59.376583
29 NCGC00095099-05 3 -2.8747 8.263900 165.3811 92.940134
... ... ... ... ... ... ...
7692 NCGC00024309-17 0 1.1271 1.270354 123.3780 64.364618
7693 NCGC00092377-04 0 1.2781 1.633540 127.4281 65.573446
7694 NCGC00249894-01 2 0.9889 0.977923 93.7563 48.803895
7695 NCGC00258493-01 0 3.6334 13.201596 60.1071 25.220379
7696 NCGC00092328-02 1 0.9264 0.858217 117.7120 63.380618
7697 NCGC00015496-08 0 -3.4028 11.579048 55.2510 43.323790
7698 NCGC00255845-01 0 NaN NaN NaN 197.835924
7699 NCGC00255892-01 0 0.4437 0.196870 77.3472 40.541895
7700 NCGC00257628-01 0 2.3992 5.756161 30.7638 13.573586
7701 NCGC00095795-06 0 1.7370 3.017169 62.7555 28.529551
7702 NCGC00259502-01 0 1.7456 3.047119 67.2834 32.485516
7703 NCGC00254185-01 0 1.9464 3.788473 46.7099 19.902379
7704 NCGC00254078-01 0 1.9464 3.788473 46.7099 19.902379
7705 NCGC00259798-01 0 0.7592 0.576385 30.1050 14.373965
7706 NCGC00255984-01 0 4.3541 18.958187 97.1672 47.655895
7707 NCGC00258735-01 0 2.2459 5.044067 86.0636 43.796688
7708 NCGC00257478-01 0 5.1368 26.386714 95.2848 52.536618
7709 NCGC00163355-05 0 -0.2722 0.074093 84.3928 38.631930
7710 NCGC00254263-01 0 NaN NaN NaN 47.128758
7711 NCGC00260266-01 0 0.9368 0.877594 35.3574 21.567930
7712 NCGC00258239-01 0 2.3709 5.621167 75.0245 37.339102
7713 NCGC00257750-01 0 0.5695 0.324330 49.8130 25.248758
7714 NCGC00256348-01 0 0.2874 0.082599 41.9237 19.847551
7715 NCGC00254098-01 0 1.5354 2.357453 61.0800 33.663102
7716 NCGC00015563-13 0 1.6130 2.601769 97.3830 51.643032
7717 NCGC00258606-01 0 0.8041 0.646577 26.4598 15.491551
7718 NCGC00254798-01 0 -1.2646 1.599213 86.3007 41.545516
7719 NCGC00092310-06 0 -1.8789 3.530265 96.8643 57.331411
7720 NCGC00022043-06 0 0.6243 0.389750 102.7615 65.025376
7721 NCGC00257951-01 0 -0.2697 0.072738 142.9587 88.813306
naAromAtom nAromBond nAtom nHeavyAtom ... TDB1r TDB2r TDB3r \
0 0 0 8 7 ... NaN NaN NaN
1 0 0 24 10 ... NaN NaN NaN
2 0 0 21 9 ... NaN NaN NaN
3 0 0 48 20 ... NaN NaN NaN
4 0 0 15 5 ... NaN NaN NaN
5 0 0 32 20 ... NaN NaN NaN
6 0 0 38 20 ... NaN NaN NaN
7 0 0 24 12 ... NaN NaN NaN
8 0 0 25 11 ... NaN NaN NaN
9 0 0 22 10 ... NaN NaN NaN
10 0 0 27 11 ... NaN NaN NaN
11 0 0 24 12 ... NaN NaN NaN
12 0 0 34 17 ... NaN NaN NaN
13 0 0 12 6 ... NaN NaN NaN
14 0 0 43 23 ... NaN NaN NaN
15 0 0 38 18 ... NaN NaN NaN
16 0 0 42 22 ... NaN NaN NaN
17 0 0 32 12 ... NaN NaN NaN
18 0 0 24 12 ... NaN NaN NaN
19 0 0 19 9 ... NaN NaN NaN
20 0 0 36 14 ... NaN NaN NaN
21 0 0 31 10 ... NaN NaN NaN
22 0 0 21 9 ... NaN NaN NaN
23 0 0 45 22 ... NaN NaN NaN
24 0 0 12 7 ... NaN NaN NaN
25 0 0 24 12 ... NaN NaN NaN
26 0 0 30 19 ... NaN NaN NaN
27 0 0 22 10 ... NaN NaN NaN
28 0 0 55 24 ... NaN NaN NaN
29 0 0 84 46 ... NaN NaN NaN
... ... ... ... ... ... ... ... ...
7692 0 0 55 29 ... NaN NaN NaN
7693 0 0 53 31 ... NaN NaN NaN
7694 0 0 40 25 ... NaN NaN NaN
7695 0 0 15 12 ... NaN NaN NaN
7696 0 0 54 28 ... NaN NaN NaN
7697 0 0 44 14 ... NaN NaN NaN
7698 0 0 151 83 ... NaN NaN NaN
7699 0 0 33 18 ... NaN NaN NaN
7700 0 0 8 6 ... NaN NaN NaN
7701 0 0 21 14 ... NaN NaN NaN
7702 0 0 27 15 ... NaN NaN NaN
7703 0 0 13 10 ... NaN NaN NaN
7704 0 0 13 10 ... NaN NaN NaN
7705 0 0 11 6 ... NaN NaN NaN
7706 0 0 34 19 ... NaN NaN NaN
7707 0 0 37 21 ... NaN NaN NaN
7708 0 0 46 20 ... NaN NaN NaN
7709 0 0 30 20 ... NaN NaN NaN
7710 0 0 20 14 ... NaN NaN NaN
7711 0 0 17 7 ... NaN NaN NaN
7712 0 0 31 17 ... NaN NaN NaN
7713 0 0 21 15 ... NaN NaN NaN
7714 0 0 16 9 ... NaN NaN NaN
7715 0 0 30 16 ... NaN NaN NaN
7716 0 0 45 21 ... NaN NaN NaN
7717 0 0 14 7 ... NaN NaN NaN
7718 0 0 33 21 ... NaN NaN NaN
7719 0 0 52 25 ... NaN NaN NaN
7720 0 0 59 27 ... NaN NaN NaN
7721 0 0 79 37 ... NaN NaN NaN
TDB4r TDB5r TDB6r TDB7r TDB8r TDB9r TDB10r
0 NaN NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN NaN NaN
6 NaN NaN NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN NaN
10 NaN NaN NaN NaN NaN NaN NaN
11 NaN NaN NaN NaN NaN NaN NaN
12 NaN NaN NaN NaN NaN NaN NaN
13 NaN NaN NaN NaN NaN NaN NaN
14 NaN NaN NaN NaN NaN NaN NaN
15 NaN NaN NaN NaN NaN NaN NaN
16 NaN NaN NaN NaN NaN NaN NaN
17 NaN NaN NaN NaN NaN NaN NaN
18 NaN NaN NaN NaN NaN NaN NaN
19 NaN NaN NaN NaN NaN NaN NaN
20 NaN NaN NaN NaN NaN NaN NaN
21 NaN NaN NaN NaN NaN NaN NaN
22 NaN NaN NaN NaN NaN NaN NaN
23 NaN NaN NaN NaN NaN NaN NaN
24 NaN NaN NaN NaN NaN NaN NaN
25 NaN NaN NaN NaN NaN NaN NaN
26 NaN NaN NaN NaN NaN NaN NaN
27 NaN NaN NaN NaN NaN NaN NaN
28 NaN NaN NaN NaN NaN NaN NaN
29 NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ...
7692 NaN NaN NaN NaN NaN NaN NaN
7693 NaN NaN NaN NaN NaN NaN NaN
7694 NaN NaN NaN NaN NaN NaN NaN
7695 NaN NaN NaN NaN NaN NaN NaN
7696 NaN NaN NaN NaN NaN NaN NaN
7697 NaN NaN NaN NaN NaN NaN NaN
7698 NaN NaN NaN NaN NaN NaN NaN
7699 NaN NaN NaN NaN NaN NaN NaN
7700 NaN NaN NaN NaN NaN NaN NaN
7701 NaN NaN NaN NaN NaN NaN NaN
7702 NaN NaN NaN NaN NaN NaN NaN
7703 NaN NaN NaN NaN NaN NaN NaN
7704 NaN NaN NaN NaN NaN NaN NaN
7705 NaN NaN NaN NaN NaN NaN NaN
7706 NaN NaN NaN NaN NaN NaN NaN
7707 NaN NaN NaN NaN NaN NaN NaN
7708 NaN NaN NaN NaN NaN NaN NaN
7709 NaN NaN NaN NaN NaN NaN NaN
7710 NaN NaN NaN NaN NaN NaN NaN
7711 NaN NaN NaN NaN NaN NaN NaN
7712 NaN NaN NaN NaN NaN NaN NaN
7713 NaN NaN NaN NaN NaN NaN NaN
7714 NaN NaN NaN NaN NaN NaN NaN
7715 NaN NaN NaN NaN NaN NaN NaN
7716 NaN NaN NaN NaN NaN NaN NaN
7717 NaN NaN NaN NaN NaN NaN NaN
7718 NaN NaN NaN NaN NaN NaN NaN
7719 NaN NaN NaN NaN NaN NaN NaN
7720 NaN NaN NaN NaN NaN NaN NaN
7721 NaN NaN NaN NaN NaN NaN NaN
[7722 rows x 1338 columns]
I didn't get exactly what you are asking for, but if 'Nan' values in your DFS is the problem, then try this...
In your code:
a=a.dropna(axis=1,how="all")
The issue is with "how" parameter you are using. It takes two values any/all
how : {‘any’, ‘all’}
any : if any NA values are present, drop that label
all : if all values are NA, drop that label
So, try using dataframe.dropna():
a=a.dropna()
Update: I tested with your files, and found that there were no records matching!
I appending two files is your requirement, it seems you are using the wrong operation ("merge" instead of "append").
Try this code:
a = pd.read_csv("true.csv",low_memory=False)
b = pd.read_csv("false.csv",low_memory=False)
merged = a.append(b, ignore_index=False)
merged.to_csv("out.csv", index=False)
after merge, you can use dropna if you want!!
I have a Pandas DataFrame as shown below:
I1 V1 I2 V2 I3 V3 ...
0 13.823560 0.000000 13.639405 0.000000 13.455246 0.000000 ...
1 13.823376 0.001274 13.639224 0.001273 13.455068 0.001272 ...
2 13.823193 0.002547 13.639043 0.002546 13.454889 0.002544 ...
3 13.823009 0.003821 13.638862 0.003819 13.454711 0.003817 ...
4 13.822826 0.005095 13.638681 0.005092 13.454532 0.005089 ...
5 13.822642 0.006368 13.638500 0.006365 13.454354 0.006361 ...
... ... ... ... ... ... ... ...
495 0.613282 0.630456 0.610912 0.630109 0.608497 0.629756 ...
496 0.455202 0.631730 0.453456 0.631381 0.451677 0.631028 ...
497 0.296663 0.633004 0.295533 0.632654 0.294383 0.632301 ...
498 0.137670 0.634277 0.137149 0.633927 0.136619 0.633573 ...
499 -0.021770 0.635551 -0.021688 0.635200 -0.021605 0.634845 ...
[500 rows x 120 columns]
What I would like to do is reshape the DataFrame to make it look like this:
#(I as new index)
I V1 V2 V3 ...
13.823560 0.000000 NaN NaN ...
13.823376 0.001274 NaN NaN ...
13.823193 0.002547 NaN NaN ...
13.823009 0.003821 NaN NaN ...
13.822642 0.005095 NaN NaN ...
... ... ... ... ...
0.137670 0.630456 NaN NaN ...
0.136619 NaN NaN 0.633573 ...
-0.021605 NaN NaN 0.634845 ...
-0.021688 NaN 0.635200 NaN ...
-0.021770 0.635551 NaN NaN ...
[30000 rows x 60 columns]
In other words, I want to fill the new DataFrame index with all values encountered in all "I"-labeled columns (1 to 60 in my case). However, I also want to keep the remaining V-columns untouched for now - as long as they still link to their original I-counterpart value.
When trying the following ...
dfen = pd.melt(dfen, id_vars=['I'+str(b) for b in xrange(1,len(irlist)+1)], var_name='id', value_name='V')
... the DataFrame is squeezed to just two columns, so I think I will need something trickier.
Anyone any idea how to re-index the DataFrame in the way shown above?
The function will be called a lot of times, so speed optimization is quite important as well.
Starting with:
Int64Index: 11 entries, 0 to 10
Data columns (total 6 columns):
I1 11 non-null float64
V1 11 non-null float64
I2 11 non-null float64
V2 11 non-null float64
I3 11 non-null float64
V3 11 non-null float64
dtypes: float64(6)
Try:
pd.concat([df.loc[:, ['V{}'.format(i), 'I{}'.format(i)]].rename(columns={'I{}'.format(i): 'I'}) for i in range(1, 4)])
to get:
I V1 V2 V3
0 13.823560 0.000000 NaN NaN
1 13.823376 0.001274 NaN NaN
2 13.823193 0.002547 NaN NaN
3 13.823009 0.003821 NaN NaN
4 13.822826 0.005095 NaN NaN
5 13.822642 0.006368 NaN NaN
6 0.613282 0.630456 NaN NaN
7 0.455202 0.631730 NaN NaN
8 0.296663 0.633004 NaN NaN
9 0.137670 0.634277 NaN NaN
10 -0.021770 0.635551 NaN NaN
0 13.639405 NaN 0.000000 NaN
1 13.639224 NaN 0.001273 NaN
2 13.639043 NaN 0.002546 NaN
3 13.638862 NaN 0.003819 NaN
4 13.638681 NaN 0.005092 NaN
5 13.638500 NaN 0.006365 NaN
6 0.610912 NaN 0.630109 NaN
7 0.453456 NaN 0.631381 NaN
8 0.295533 NaN 0.632654 NaN
9 0.137149 NaN 0.633927 NaN
10 -0.021688 NaN 0.635200 NaN
0 13.455246 NaN NaN 0.000000
1 13.455068 NaN NaN 0.001272
2 13.454889 NaN NaN 0.002544
3 13.454711 NaN NaN 0.003817
4 13.454532 NaN NaN 0.005089
5 13.454354 NaN NaN 0.006361
6 0.608497 NaN NaN 0.629756
7 0.451677 NaN NaN 0.631028
8 0.294383 NaN NaN 0.632301
9 0.136619 NaN NaN 0.633573
10 -0.021605 NaN NaN 0.634845