मैं पायथन के लिए नया हूं और डेटा सेट के साथ खेल रहा हूं। मुझे निम्नलिखित के लिए सहायता चाहिए: 1. कोष्ठक के भीतर दिनांकों के लिए एकल उद्धरण निकालें 2. कोष्ठक को एक सरणी में विभाजित करें (31312 x 4)

कोड: आयात csv आयात numpy np के रूप में आयात पांडा pd के रूप में आयात करें

text_file = open("Claims1.txt", "r")
dfl = DataFrameList = list(text_file)
text_file.close()


dfl_string = "\n".join(str(e) for e in dfl)
dfl_split = dfl_string.replace('),', ')//').split('//')


my_df = pd.DataFrame(dfl_split)
#Output into CSV file
my_df.to_csv('output.csv')



Current Result:
     0
0   (1,'2000-01-04',328647,5000)
1   (2,'2000-01-09',465858,5000)
2   (3,'2000-01-09',378115,5000)
3   (4,'2000-01-14',121895,5000)
4   (5,'2000-01-16',325172,5000)
5   (6,'2000-01-16',156062,5000)
6   (7,'2000-01-17',472142,5000)
...............................
31312 (31312, '2004-05-30',340406, 5000)

Desired Result:
    0       1         2      3
0   1  2000-01-04  328647  5000
1   2  2000-01-09  465858  5000
2   3  2000-01-09  378115  5000
3   4  2000-01-14  121895  5000
4   5  2000-01-16  325172  5000
5   6  2000-01-16  156062  5000
6   7  2000-01-17  472142  5000
..............................
31312 31312 '2004-05-30'340406 5000
1
Derrick Chua 3 अप्रैल 2018, 18:25

3 जवाब

आप अपने परिणाम को इस तरह डेटाफ़्रेम में बदल सकते हैं (नोट data आपका वर्तमान परिणाम यहां है):

import pandas as pd

data = [(1,'2000-01-04',328647,5000),
        (2,'2000-01-09',465858,5000),
        (3,'2000-01-09',378115,5000),
        (4,'2000-01-14',121895,5000),
        (5,'2000-01-16',325172,5000),
        (6,'2000-01-16',156062,5000),
        (7,'2000-01-17',472142,5000)]

df = pd.DataFrame(data, columns=[0, 1, 2, 3])
print(df)

#   0          1      2    3 
# 0 1 2000-01-04 328647 5000 
# 1 2 2000-01-09 465858 5000 
# 2 3 2000-01-09 378115 5000 
# 3 4 2000-01-14 121895 5000 
# 4 5 2000-01-16 325172 5000 
# 5 6 2000-01-16 156062 5000 
# 6 7 2000-01-17 472142 5000
1
Austin 3 अप्रैल 2018, 15:41

मान लें कि आपका डेटा डेटाफ़्रेम में है, तो आप pd.Series.apply का उपयोग करके कॉलम में विभाजित कर सकते हैं:

import pandas as pd

df = pd.DataFrame({0:[(1,'2000-01-04',328647,5000),
                      (2,'2000-01-09',465858,5000),
                      (3,'2000-01-09',378115,5000),
                      (4,'2000-01-14',121895,5000),
                      (5,'2000-01-16',325172,5000),
                      (6,'2000-01-16',156062,5000),
                      (7,'2000-01-17',472142,5000)]})

df[[0, 1, 2, 3]] = df[0].apply(pd.Series)

#    0           1       2     3
# 0  1  2000-01-04  328647  5000
# 1  2  2000-01-09  465858  5000
# 2  3  2000-01-09  378115  5000
# 3  4  2000-01-14  121895  5000
# 4  5  2000-01-16  325172  5000
# 5  6  2000-01-16  156062  5000
# 6  7  2000-01-17  472142  5000
2
jpp 3 अप्रैल 2018, 15:36

Jpp से डेटा, तेज़ होना चाहिए

pd.DataFrame(df[0].tolist())
Out[779]: 
   0           1       2     3
0  1  2000-01-04  328647  5000
1  2  2000-01-09  465858  5000
2  3  2000-01-09  378115  5000
3  4  2000-01-14  121895  5000
4  5  2000-01-16  325172  5000
5  6  2000-01-16  156062  5000
6  7  2000-01-17  472142  5000
2
BENY 3 अप्रैल 2018, 15:37