在python中从两个列表创建一个df
我有两个python列表,格式如下:在python中从两个列表创建一个df,python,python-3.x,pandas,list,dataframe,Python,Python 3.x,Pandas,List,Dataframe,我有两个python列表,格式如下: A = [(1,''), (1, 'ABC'),(1,''), (1, 'DEF'),(1,''), (1, 'GHI'),(1,''), (1, 'LMO'),(1,'')] B = ['ABC', 'ghi', 'PQR'] (注:A为列表列表,B为普通列表) 我想创建一个只包含列表中常见元素的DF,表单为: DF : A B ABC ABC GHI ghi 请注意,可能会有小写-大写和空格请尝试: t=[v代表uv,如果v代表B]
A = [(1,''), (1, 'ABC'),(1,''), (1, 'DEF'),(1,''), (1, 'GHI'),(1,''), (1, 'LMO'),(1,'')]
B = ['ABC', 'ghi', 'PQR']
(注:A为列表列表,B为普通列表)
我想创建一个只包含列表中常见元素的DF,表单为:
DF :
A B
ABC ABC
GHI ghi
请注意,可能会有小写-大写和空格请尝试:
t=[v代表uv,如果v代表B]
df=pd.DataFrame({“A”:t,“B”:t})
打印(df)
印刷品:
ab
0 ABC ABC
1 GHI GHI
要处理大写/小写字母,请执行以下操作:
B=[v.upper()表示B中的v]
t=[v.upper()表示uv,如果v.upper()表示B]
df=pd.DataFrame({“A”:t,“B”:t})
打印(df)
试试:
t=[v代表uv,如果v代表B]
df=pd.DataFrame({“A”:t,“B”:t})
打印(df)
印刷品:
ab
0 ABC ABC
1 GHI GHI
要处理大写/小写字母,请执行以下操作:
B=[v.upper()表示B中的v]
t=[v.upper()表示uv,如果v.upper()表示B]
df=pd.DataFrame({“A”:t,“B”:t})
打印(df)
您可以尝试:
import numpy as np
a = np.intersect1d(np.array(A)[:,1], np.array(B))
df = pd.DataFrame({'A': a, 'B': a})
您可以尝试:
import numpy as np
a = np.intersect1d(np.array(A)[:,1], np.array(B))
df = pd.DataFrame({'A': a, 'B': a})
输入数据:
>>> dfA
_ A
0 1
1 1 AbC
2 1
3 1 DEF
4 1
5 1 G H I
6 1
7 1 LMO
8 1
>>> dfB
B
0 ABC
1 GHI
2 PQR
输入数据:
>>> dfA
_ A
0 1
1 1 AbC
2 1
3 1 DEF
4 1
5 1 G H I
6 1
7 1 LMO
8 1
>>> dfB
B
0 ABC
1 GHI
2 PQR
要注意区分大小写和空格,请尝试以下操作:
import pandas as pd
A = [(1,''), (1, 'ABC'),(1,''), (1, 'DEF'),(1,''), (1, 'GHI'),(1,''), (1, 'LMO'),(1,'')]
B = ['ABC', 'GHI', 'PQR']
A = [i[1] for i in A if i[1].lower().replace(' ', '') in [x.lower().replace(' ','') for x in B]]
df = pd.DataFrame({'A': A, 'B': A})
print(df)
要注意区分大小写和空格,请尝试以下操作:
import pandas as pd
A = [(1,''), (1, 'ABC'),(1,''), (1, 'DEF'),(1,''), (1, 'GHI'),(1,''), (1, 'LMO'),(1,'')]
B = ['ABC', 'GHI', 'PQR']
A = [i[1] for i in A if i[1].lower().replace(' ', '') in [x.lower().replace(' ','') for x in B]]
df = pd.DataFrame({'A': A, 'B': A})
print(df)
尝试:
t=[v代表uv,如果v代表B]
df=pd.DataFrame({“A”:t,“B”:t})
打印(df)
印刷品:
ab
0 ABC ABC
1 GHI GHI
要处理大写/小写字母,请执行以下操作:
t=[v.upper()或v.lower()表示uv,如果v.upper()或v.lower()表示B]
df=pd.DataFrame({“A”:t,“B”:t})
打印(df)
试试:
t=[v代表uv,如果v代表B]
df=pd.DataFrame({“A”:t,“B”:t})
打印(df)
印刷品:
ab
0 ABC ABC
1 GHI GHI
要处理大写/小写字母,请执行以下操作:
t=[v.upper()或v.lower()表示uv,如果v.upper()或v.lower()表示B]
df=pd.DataFrame({“A”:t,“B”:t})
打印(df)
这是否也可以处理小写和大写?加上空格?@KathanVyas我已经更新了我的答案。对你的答案稍加修改就行了。非常感谢。这个也可以处理小写和大写吗?加上空格?@KathanVyas我已经更新了我的答案。对你的答案稍加修改就行了。非常感谢。这个可以处理小写、大写和空格吗?@KathanVyas。现在是:-)这个能处理小写、大写和空格吗?@KathanVyas。现在是:-)这个能处理小写、大写和空格吗?你能添加更多细节以从你建议的答案中获得更多上下文吗?@KathanVyas是的,现在它能处理所有问题。我已经更新了ans@LinhNguyen当然迭代pandas系列A,当且仅当迭代元素的第一个元素出现在列表B中时才选择元素,稍后区分大小写,空格也按Kathan的要求处理,这是否处理小写,大写和空格?你能添加更多细节以从你建议的答案中获得更多上下文吗?@KathanVyas是的,现在它确实考虑到了所有问题。我已经更新了ans@LinhNguyen当然迭代pandas系列A,当且仅当迭代元素的第一个元素出现在列表B中时才选择元素。稍后,根据Kathan的要求,区分大小写和空格也要小心