Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中从两个列表创建一个df_Python_Python 3.x_Pandas_List_Dataframe - Fatal编程技术网

在python中从两个列表创建一个df

在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]

我有两个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]
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的要求,区分大小写和空格也要小心