Python Concatenate/Append - I'm not quite getting this? - python

I have several files I've created (4 files, file 1 = a list of 1-100, file 2 = a list of 101-200...etc), all of which are just a list of ID's. I am trying to create a single file, with all the ID's in a single column (IDs are unique so a single column works).
I can't quite get it though - I keep getting close but not quite what I need.
I think I'm missing something related to assigning indexes or something? any insights are greatly appreciated!
import pandas as pd
URL1 = "C:\\PATH\\" + fileName + "1" + ".csv"
URL2 = "C:\\PATH\\" + fileName + "2" + ".csv"
URL3 = "C:\\PATH\\" + fileName + "3" + ".csv"
URL4 = "C:\\PATH\\" + fileName + "4" + ".csv"
data1 = pd.read_csv(URL1)
data2 = pd.read_csv(URL2)
data3 = pd.read_csv(URL3)
data4 = pd.read_csv(URL4)
data_concat = pd.concat([data1, data2, data3, data4])
data_append = data1.append(data2)
data_append2 = data_append.append(data3)
data_append3 = data_append2.append(data4)
when I:
print(data_append3)
# or
print(data_concat)
i get:
1 101 201 301
0 2.0 NaN NaN NaN
1 3.0 NaN NaN NaN
2 4.0 NaN NaN NaN
3 5.0 NaN NaN NaN
4 6.0 NaN NaN NaN
.. ... ... ... ...
94 NaN NaN NaN 396.0
95 NaN NaN NaN 397.0
96 NaN NaN NaN 398.0
97 NaN NaN NaN 399.0
98 NaN NaN NaN 400.0
[396 rows x 4 columns]
Edit:
Print(data1)
1 101
0 2.0 NaN
1 3.0 NaN
2 4.0 NaN
3 5.0 NaN
4 6.0 NaN
.. ... ...
94 NaN 196.0
95 NaN 197.0
96 NaN 198.0
97 NaN 199.0
98 NaN 200.0
print(data2)
1 101 201
0 2.0 NaN NaN
1 3.0 NaN NaN
2 4.0 NaN NaN
3 5.0 NaN NaN
4 6.0 NaN NaN
.. ... ... ...
94 NaN NaN 296.0
95 NaN NaN 297.0
96 NaN NaN 298.0
97 NaN NaN 299.0
98 NaN NaN 300.0
I tried adding this and it worked! thank you :)
data1 = pd.read_csv(URL1,header =None)
data2 = pd.read_csv(URL2,header=None)
data3 = pd.read_csv(URL3,header=None)
data4 = pd.read_csv(URL4,header=None)
print(data_append3)
0
0 1
1 2
2 3
3 4
4 5
.. ...
95 396
96 397
97 398
98 399
99 400
[400 rows x 1 columns]

Related

How can I get a df that is exactly like the .txt imput? (file has " " separator)

I have a TXT file that looks like this:
DBSH
(NFr) O (NTo) Nc C (Vmn (Vmx Bctrl (Qini) T A (Extr
121 D 0950 1050 121 -10. C
(G O E (U) UOp (Sht ) M
1 2 2 -5. S
2 1 0 -10. S
FBAN
(NFr) O (NTo) Nc C (Vmn (Vmx Bctrl (Qini) T A (Extr
125 D 0950 1050 125 3.1 C
(G O E (U) UOp (Sht ) M
1 3 1 3.1 S
2 1 0 -5. S
FBAN
I want to get a dataframe that looks like this:
DBSH NaN NaN NaN NaN Nan NaN NaN NaN NaN NaN NaN
(NFr) O (NTo) Nc C (Vmn (Vmx Bctrl (Qini) T A (Extr
121 NaN NaN NaN D 0950 1050 121 -10. C NaN NaN
(G O E (U) UOp (Sht ) M NaN NaN NaN NaN NaN
1 NaN NaN 2 2 -5. S NaN NaN NaN NaN NaN
2 NaN NaN 1 0 -10. S NaN NaN NaN NaN NaN
FBAN NaN NaN NaN NaN Nan NaN NaN NaN NaN NaN NaN
(NFr) O (NTo) Nc C (Vmn (Vmx Bctrl (Qini) T A (Extr
125 NaN NaN NaN D 0950 1050 125 3.1 C NaN NaN
(G O E (U) UOp (Sht ) M NaN NaN NaN NaN NaN
1 NaN NaN 3 1 3.1 S NaN NaN NaN NaN NaN
2 NaN NaN 1 0 -5. S NaN NaN NaN NaN NaN
FBAN NaN NaN NaN NaN Nan NaN NaN NaN NaN NaN NaN
99999 NaN NaN NaN NaN Nan NaN NaN NaN NaN NaN NaN
I've done:
data_file = _teste
data_file_delimiter = " "
largest_columns_count = 0
with open(data_file, 'r') as temp_f:
lines = temp_f.readlines()
for l in lines:
column_count = len(l.split(data_file_delimiter))+1
largest_columns_count = column_count if largest_columns_count < column_count else largest_columns_count
column_names = [i for i in range(0, largest_columns_count - 1)]
df = pd.read_csv(data_file, header=None, delimiter=data_file_delimiter,
names=column_names, dtype=object)
and got an output that is not satisfying. I don't realy know what to do from this, what's an awnser for this?
Once you find the "largest_colummn"(which should be largest row), go through each line and change the delimiter to a comma. Add as many comas until you get the number of correct columns for each line. I am guessing the space delimiter could make things complicated. You can add Nan when adding comas or change the empty responses to NaN at a late point. and replace commas at the end if that is what you want

Replace dataframe values by NaN

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

Columns appending is troublesome with Pandas

Here is what I have tried and what error I received:
>>> import pandas as pd
>>> df = pd.DataFrame({"A":[1,2,3,4,5],"B":[5,4,3,2,1],"C":[0,0,0,0,0],"D":[1,1,1,1,1]})
>>> df
A B C D
0 1 5 0 1
1 2 4 0 1
2 3 3 0 1
3 4 2 0 1
4 5 1 0 1
>>> import pandas as pd
>>> df = pd.DataFrame({"A":[1,2,3,4,5],"B":[5,4,3,2,1],"C":[0,0,0,0,0],"D":[1,1,1,1,1]})
>>> first = [2,2,2,2,2,2,2,2,2,2,2,2]
>>> first = pd.DataFrame(first).T
>>> first.index = [2]
>>> df = df.join(first)
>>> df
A B C D 0 1 2 3 4 5 6 7 8 9 10 11
0 1 5 0 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 2 4 0 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 3 3 0 1 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0
3 4 2 0 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 5 1 0 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
>>> second = [3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]
>>> second = pd.DataFrame(second).T
>>> second.index = [1]
>>> df = df.join(second)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python35\lib\site-packages\pandas\core\frame.py", line 6815, in join
rsuffix=rsuffix, sort=sort)
File "C:\Python35\lib\site-packages\pandas\core\frame.py", line 6830, in _join_compat
suffixes=(lsuffix, rsuffix), sort=sort)
File "C:\Python35\lib\site-packages\pandas\core\reshape\merge.py", line 48, in merge
return op.get_result()
File "C:\Python35\lib\site-packages\pandas\core\reshape\merge.py", line 552, in get_result
rdata.items, rsuf)
File "C:\Python35\lib\site-packages\pandas\core\internals\managers.py", line 1972, in items_overlap_with_suffix
'{rename}'.format(rename=to_rename))
ValueError: columns overlap but no suffix specified: Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], dtype='object')
I am trying to create new list with the extra columns which I have to add at specific indexes of the main dataframe df.
When i tried the first it worked and you can see the output. But when I tried the same way with second I received the above mentioned error.
Kindly, let me know what I can do in this situation and achieve the goal I am expecting.
Use DataFrame.combine_first instead join if need assign to same columns created before, last DataFrame.reindex by list of columns for expected ordering:
df = pd.DataFrame({"A":[1,2,3,4,5],"B":[5,4,3,2,1],"C":[0,0,0,0,0],"D":[1,1,1,1,1]})
orig = df.columns.tolist()
first = [2,2,2,2,2,2,2,2,2,2,2,2]
first = pd.DataFrame(first).T
first.index = [2]
df = df.combine_first(first)
second = [3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]
second = pd.DataFrame(second).T
second.index = [1]
df = df.combine_first(second)
df = df.reindex(orig + first.columns.tolist(), axis=1)
print (df)
A B C D 0 1 2 3 4 5 6 7 8 9 10 11
0 1 5 0 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 2 4 0 1 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0
2 3 3 0 1 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0
3 4 2 0 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 5 1 0 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Yes this is expected behaviour because join works much like an SQL join, meaning that it will join on the provided index and concatenate all the columns together. The problem arises from the fact that pandas does not accept two columns to have the same name. Hence, if you have 2 columns in each dataframe with the same name, it will first look for a suffix to add to those columns to avoid name clashes. This is controlled with the lsuffix and rsuffix arguments in the join method.
Conclusion: 2 ways to solve this:
Either provide a suffix so that pandas is able to resolve the name clashes; or
Make sure that you don't have overlapping columns
You have to specify the suffixes since the column names are the same. Assuming you are trying to add the second values as new columns horizontally:
df = df.join(second, lsuffix='first', rsuffix='second')
A B C D 0first 1first 2first 3first 4first 5first ... 10second 11second 12 13 14 15 16 17 18 19
0 1 5 0 1 NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 2 4 0 1 NaN NaN NaN NaN NaN NaN ... 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0
2 3 3 0 1 2.0 2.0 2.0 2.0 2.0 2.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 4 2 0 1 NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 5 1 0 1 NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

Create Pandas Dataframe from List of Dictionaries with missing values for some keys

everyone.
Below is the code I'm using to parse a text file:
import pandas as pd
tags = ['129','30','32','851','9730','9882']
rows = []
file = open('D:\\python\\redi_fix\\redi_august.txt','r')
content = file.readlines()
for line in content:
for message in line.split('\t'):
try:
row_dict = {}
tag,val = message.split('=')
if tag in tags:
row_dict[tag]=val
rows.append(row_dict)
except:
pass
Creating a pandas dataframe from rows yields the following result:
129 30 32 851 9730 9882
r170557 NaN NaN NaN NaN NaN
NaN ARCA NaN NaN NaN NaN
NaN NaN 100 NaN NaN NaN
r170557 NaN NaN NaN NaN NaN
NaN ARCA NaN NaN NaN NaN
NaN NaN 300 NaN NaN NaN
Looks like every value for a key is on a different row.
The result I'm struggling to achieve is all values to be on the same row - see below for example:
129 30 32 851 9730 9882
r170557 ARCA 100 NaN NaN NaN
r170557 ARCA 300 NaN NaN NaN
Using your result dataframe, we need sorted and dropna
result.apply(lambda x : sorted(x,key=pd.isnull)).dropna(thresh=1)
Out[1171]:
129 30 32 851 9730 9882
0 r170557 ARCA 100.0 NaN NaN NaN
1 r170557 ARCA 300.0 NaN NaN NaN
If you want to "collapse" your NaNs, you can perform a groupby + agg on first/last:
df.groupby(df['129'].notnull().cumsum(), as_index=False).agg('first')
129 30 32 851 9730 9882
0 r170557 ARCA 100.0 NaN NaN NaN
1 r170557 ARCA 300.0 NaN NaN NaN

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

Categories