Replacing labels with names using merge - python

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

Related

Map function in pandas

full['Name'].head(10)
here is a Series which show like below:
0 Mr
1 Mrs
2 Miss
3 Mrs
4 Mr
5 Mr
6 Mr
7 Master
8 Mrs
9 Mrs
Name: Name, dtype: object
And after using the map dict function:
full['Name']=full['Name'].map({'Mr':1})
full['Name'].head(100)
it turns out to be:
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
6 NaN
7 NaN
8 NaN
9 NaN
10 NaN
11 NaN
12 NaN
13 NaN
14 NaN
15 NaN
16 NaN
17 NaN
18 NaN
19 NaN
20 NaN
21 NaN
22 NaN
23 NaN
24 NaN
25 NaN
26 NaN
27 NaN
28 NaN
29 NaN
And it is strange that I have suceed in doing this on the other Series in DataFrame full, which really make me confused.
Please help.

Python - pivot DataFrame with multiple indexes on columns

I have a simple df like below:
ID Provider Single_Cost Bundle_ID Bundle_Cost
0 L_0001 P_01 1075.0 NaN NaN
1 L_0002 P_02 590.0 NaN NaN
2 L_0003 P_02 6900.0 NaN NaN
3 L_0004 P_02 625.0 NaN NaN
4 L_0005 P_02 5775.0 NaN NaN
5 L_0006 P_02 495.0 NaN NaN
6 L_0007 P_02 570.0 NaN NaN
7 L_0008 P_02 1250.0 NaN NaN
8 L_0009 P_03 2940.0 P_03_1 1470.0
9 L_0010 P_03 7608.0 P_03_1 7308.0
And I need to transform it to get 2 levels of columns:
Level 1: Provider (the number of providers varies)
Level 2: Single_Cost, Bundle_ID and Bundle_Cost (constant 3 columns for all providers)
Provider P_01 P_02 P_03
ID Single_Cost Bundle_ID Bundle_Cost Single_Cost Bundle_ID Bundle_Cost Single_Cost Bundle_ID Bundle_Cost
0 L_0001 1075.0 NaN NaN NaN NaN NaN NaN NaN NaN
1 L_0002 NaN NaN NaN 590.0 NaN NaN NaN NaN NaN
2 L_0003 NaN NaN NaN 6900.0 NaN NaN NaN NaN NaN
3 L_0004 NaN NaN NaN 625.0 NaN NaN NaN NaN NaN
4 L_0005 NaN NaN NaN 5775.0 NaN NaN NaN NaN NaN
5 L_0006 NaN NaN NaN 495.0 NaN NaN NaN NaN NaN
6 L_0007 NaN NaN NaN 570.0 NaN NaN NaN NaN NaN
7 L_0008 NaN NaN NaN 1250.0 NaN NaN NaN NaN NaN
8 L_0009 NaN NaN NaN NaN NaN NaN 2940.0 P_03_1 1470.0
9 L_0010 NaN NaN NaN NaN NaN NaN 7608.0 P_03_1 7308.0
I think it can be done somehow with merging 2 dataframes after groupby, but I'm not sure how to start. Can you help?
Use modified another solution with pass 2 columns to set_index, last reset ID column and rename it to correct MultiIndex labels, here (Provider, ID):
df = (df.set_index(['ID','Provider'], append=True)
.unstack()
.swaplevel(1, 0, axis=1)
.sort_index(axis=1)
.reset_index(level=1)
.rename_axis((None, None), axis=1)
.rename(columns={'':'ID'})
.rename(columns={'ID':'Provider'}, level=0))
print (df)
Provider P_01 P_02 \
ID Bundle_Cost Bundle_ID Single_Cost Bundle_Cost Bundle_ID
0 L_0001 NaN NaN 1075.0 NaN NaN
1 L_0002 NaN NaN NaN NaN NaN
2 L_0003 NaN NaN NaN NaN NaN
3 L_0004 NaN NaN NaN NaN NaN
4 L_0005 NaN NaN NaN NaN NaN
5 L_0006 NaN NaN NaN NaN NaN
6 L_0007 NaN NaN NaN NaN NaN
7 L_0008 NaN NaN NaN NaN NaN
8 L_0009 NaN NaN NaN NaN NaN
9 L_0010 NaN NaN NaN NaN NaN
P_03
Single_Cost Bundle_Cost Bundle_ID Single_Cost
0 NaN NaN NaN NaN
1 590.0 NaN NaN NaN
2 6900.0 NaN NaN NaN
3 625.0 NaN NaN NaN
4 5775.0 NaN NaN NaN
5 495.0 NaN NaN NaN
6 570.0 NaN NaN NaN
7 1250.0 NaN NaN NaN
8 NaN 1470.0 P_03_1 2940.0
9 NaN 7308.0 P_03_1 7608.0
Another idea is create tuples and assign new columns, here MultiIndex by MultiIndex.from_tuples:
df = (df.set_index(['ID','Provider'], append=True)
.unstack()
.swaplevel(1, 0, axis=1)
.sort_index(axis=1)
.reset_index(level=1)
.rename_axis((None, None), axis=1))
mux = [('Provider', 'ID')] + df.columns.tolist()[1:]
df.columns = pd.MultiIndex.from_tuples(mux)
print (df)
Provider P_01 P_02 \
ID Bundle_Cost Bundle_ID Single_Cost Bundle_Cost Bundle_ID
0 L_0001 NaN NaN 1075.0 NaN NaN
1 L_0002 NaN NaN NaN NaN NaN
2 L_0003 NaN NaN NaN NaN NaN
3 L_0004 NaN NaN NaN NaN NaN
4 L_0005 NaN NaN NaN NaN NaN
5 L_0006 NaN NaN NaN NaN NaN
6 L_0007 NaN NaN NaN NaN NaN
7 L_0008 NaN NaN NaN NaN NaN
8 L_0009 NaN NaN NaN NaN NaN
9 L_0010 NaN NaN NaN NaN NaN
P_03
Single_Cost Bundle_Cost Bundle_ID Single_Cost
0 NaN NaN NaN NaN
1 590.0 NaN NaN NaN
2 6900.0 NaN NaN NaN
3 625.0 NaN NaN NaN
4 5775.0 NaN NaN NaN
5 495.0 NaN NaN NaN
6 570.0 NaN NaN NaN
7 1250.0 NaN NaN NaN
8 NaN 1470.0 P_03_1 2940.0
9 NaN 7308.0 P_03_1 7608.0

pd.MultiIndex.from_tuples is adding nan values to the table

Changing the original values in the df
I have a df as shown below, which I obtain after performing a number of calculations:
Acc Ep Direction Ttest_t Ttest_s T_count TPNL TS TotalPNL TotalS
A KA B -10.62 -0.21 3 -625.52 14.59 -667.61 24.28
B EF B -4.25 2.63 2 -448.08 26.88 -448.08 26.88
D SE B -3.94 8.63 4 -533.70 75.41 -550.26 128.38
G UA S -6.85 -0.09 3 -563.83 19.58 -411.06 21.54
N EL B -5.39 2.84 2 -2230.23 464.56 -6641.1 1232.79
N SD B -4.70 -0.21 2 -1057.0 117.45 -6641.1 1232.79
S UD B -5.48 0.18 33 1416.69 3981.32 955.34 4475.32
then I use the MultiIndex function as follows:
columns = [('Index','Acc'), ('Index','Ep'), ('EPNL','Ttest_t'), ('EPNL','TPNL'), ('EPNL','TotalPNL'), ('SPaid','Ttest_s'), ('SPaid','TS'), ('SPaid','TotalS'), ('Other','Direction'), ('Other','T_count')]
temp3.columns=pd.MultiIndex.from_tuples(columns)
This does gives me the table format I want. but, it adds null values to my table(as shown below)
Index EPNL SPaid Other O
Acc Epic Ttest_t TPNL TotalPNL Ttest_s TS TotalS Direction t
NaN NaN NaN NaN NaN NaN NaN NaN NaN h
NaN NaN NaN NaN NaN NaN NaN NaN NaN e
NaN NaN NaN NaN NaN NaN NaN NaN NaN r
NaN NaN NaN NaN NaN NaN NaN NaN NaN T
NaN NaN NaN NaN NaN NaN NaN NaN NaN r
NaN NaN NaN NaN NaN NaN NaN NaN NaN a
NaN NaN NaN NaN NaN NaN NaN NaN NaN d
NaN NaN NaN NaN NaN NaN NaN NaN NaN e
NaN NaN NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN c
NaN NaN NaN NaN NaN NaN NaN NaN NaN o
NaN NaN NaN NaN NaN NaN NaN NaN NaN u
NaN NaN NaN NaN NaN NaN NaN NaN NaN n
NaN NaN NaN NaN NaN NaN NaN NaN NaN t
A KA B -10.62 -0.21 3 -625.52 14.59 -667.61 24.28
B EF B -4.25 2.63 2 -448.08 26.88 -448.08 26.88
D SE B -3.94 8.63 4 -533.70 75.41 -550.26 128.38
G UA S -6.85 -0.09 3 -563.83 19.58 -411.06 21.54
N EL B -5.39 2.84 2 -2230.23 464.56 -6641.17 1232.79
N SD B -4.70 -0.21 2 -1057.02 117.45 -6641.17 1232.79
S UD B -5.48 0.18 33 1416.69 3981.32 955.34 4475.32
Any ideas on why it is doing that. I prefer it not adding the values(I don't want to use dropna)
Because string is iterable, ('Other' 'T_count') is converted to
'O','t','h','e',r',' ','T','_','c','o','u','n','t'
and created 16 level MultiIndex.
Solution is add , like ('Other', 'T_count').
columns = [('Index','Acc'), ('Index','Ep'),
('EPNL','Ttest_t'), ('EPNL','TPNL'),
('EPNL','TotalPNL'), ('SPaid','Ttest_s'),
('SPaid','TS'), ('SPaid','TotalS'),
('Other','Direction'), ('Other','T_count')]
temp3.columns=pd.MultiIndex.from_tuples(columns)
print (temp3)
Index EPNL SPaid Other \
Acc Ep Ttest_t TPNL TotalPNL Ttest_s TS TotalS Direction
0 A KA B -10.62 -0.21 3 -625.52 14.59 -667.61
1 B EF B -4.25 2.63 2 -448.08 26.88 -448.08
2 D SE B -3.94 8.63 4 -533.70 75.41 -550.26
3 G UA S -6.85 -0.09 3 -563.83 19.58 -411.06
4 N EL B -5.39 2.84 2 -2230.23 464.56 -6641.10
5 N SD B -4.70 -0.21 2 -1057.00 117.45 -6641.10
6 S UD B -5.48 0.18 33 1416.69 3981.32 955.34
T_count
0 24.28
1 26.88
2 128.38
3 21.54
4 1232.79
5 1232.79
6 4475.32

How to combine 2 csv files(each csv file having more than 100 columns and 425 & 7222 rows respectively) using pandas?

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!!

Complete the index and columns in pandas(DataFrame)?

Here is a datafrmae.
a = pd.DataFrame({'a':np.arange(10)}, index=np.arange(0,20,2))
# then I can create new dataframe and complete the index.
b = pd.DataFrame(index=np.arange(20))
b['a'] = a
# Now convert the index np.arange(0,20,2) to np.arange(20). Fill noexists value by np.nan.
But how can i do the same way to column? Suppose the column's dtype is int32 and names is np.arange(0,20,2).
It seems you need reindex:
print (a.reindex(b.index))
a
0 0.0
1 NaN
2 1.0
3 NaN
4 2.0
5 NaN
6 3.0
7 NaN
8 4.0
9 NaN
10 5.0
11 NaN
12 6.0
13 NaN
14 7.0
15 NaN
16 8.0
17 NaN
18 9.0
19 NaN
Also can reindex columns:
a.columns = [0]
print (a.reindex(index=b.index, columns=np.arange(0,20,2)))
0 2 4 6 8 10 12 14 16 18
0 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 2.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 3.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 4.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
10 5.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
11 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
12 6.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
13 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
14 7.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
15 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
16 8.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
17 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
18 9.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
19 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

Categories