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