import pandas
data = pandas.read_csv("Source_Sheet.csv")
data1 = pandas.read_csv("Target sheet.csv")
#print(data.dtypes)
data1["permanent address"] = data["Permanent Address"]
data1["delhi address"] = data["Delhi Address"]
name_party_area = data["Name of Member \nParty \nConstituency(State)"].str.split('\n')
name = []
party = []
area = []
state = []
for n in name_party_area:
name.append(n[0])
for p in name_party_area:
party.append(p[1])
for a in name_party_area:
try:
temp = a[2]
k = temp[0:temp.find("(")]
area.append(k)
l = temp[temp.find("(")+1:-1]
state.append(l)
except:
pass
data1["name"] = pandas.Series(name)
data1["organisation"] = pandas.Series(party)
data1["Area"] = pandas.Series(area)
data1["State"] = pandas.Series(state)
email_phone = data["Email Address \nTelephone Nos."].str.split('\n')
#print(email_phone[0])
sansad_email = []
email = []
for item in email_phone:
try:
if "@" in item[0]:
if "@sansad.nic.in" in item[0]:
sansad_email.append(item[0])
if "@" not in item[1]:
email.append("NA")
else:
email.append(item[0])
sansad_email.append("NA")
else:
sansad_email.append("NA")
email.append("NA")
if "@" in item[1]:
email.append(item[1])
except:
pass
number = data["Permanent Telephone No."]
nos = []
sec_nos = []
for num in number:
try:
d = num.rfind("(M)")
g = num[d-11:d]
nos.append(g)
except:
nos.append("NA")
try:
j = num.find("ax")
h = num[j+5:j+18]
sec_nos.append(h)
except:
sec_nos.append("NA")
data1["Mobile"] = pandas.Series(nos)
data1["Secondary phones"] = pandas.Series(sec_nos)
data1["email "] = pandas.Series(email)
data1["sansad email"] = pandas.Series(sansad_email)
data1.to_csv("Target_sheet.csv")
print(data1.shape)
这是我的做法,但我没有得到预期的结果。而且,输出只显示了9行,而它应该返回403行。 提取永久移动电话号码和辅助移动电话号码时遇到问题。你知道吗
到csv文件的链接是-https://drive.google.com/open?id=1pXXwE-QjmKc_PH8EFkH9ZhejwZc8QY6v
我不确定我是否正确理解了你的问题,但这是我的建议。你知道吗
[编辑]对
mobile()
和phone()
功能的解释:让我们看看您的原始电话信息:
我用正则表达式(regex)搜索模式,而不是用(M)来标识绝对移动号码位置。为此,我假设所有手机号码都以09开头(对吗?)我还想保留本地区号。你知道吗
因此
str.findall()
查找该正则表达式的所有匹配项并将它们作为列表返回:但是最后的
data1['Mobile']
必须是一个字符串,而不是一个列表。所以,我给它定义了mobile()
函数。为了避免重复出现,我使用(list(set(x))
和sorted()
来确保“代码区”放在单元格编号之前:phone()
函数更简单。你知道吗re.sub(r'09[0-9]*','',x)
)相关问题 更多 >
编程相关推荐