如何删除 pandas DataFrame 中任何行的重复单元格?
How can I remove duplicate cells of any row in pandas DataFrame?
我需要更新 pandas DataFrame,如下所示。有可能吗?
[我非常感谢你所有的时间和努力。抱歉,我的问题引起了你们的困惑。我试图更新问题。再次感谢]
示例 1:
import pandas as pd
#original dataframe
data = {'row_1': ['x','y','x','y'], 'row_2': ['a', 'b', 'a', None]}
data=pd.DataFrame.from_dict(data, orient='index')
print(data)
#desired dataframe from data
data1 = {'row_1': ['x','y'], 'row_2': ['a', 'b']}
data1=pd.DataFrame.from_dict(data1, orient='index')
print(data1)
示例 2:
import pandas as pd
#original dataframe
data = {'row_1': ['x','y','p','x'], 'row_2': ['a', 'b', 'a', None]}
data=pd.DataFrame.from_dict(data, orient='index')
print(data)
#desired dataframe from data
data1 = {'row_1': ['x','y','p'], 'row_2': ['a', 'b']}
data1=pd.DataFrame.from_dict(data1, orient='index')
print(data1)
你可以使用duplicated
方法。查看此 link 以获取有关 pandas' API 参考
的示例
data = data.apply(lambda x: x.transpose().dropna().unique().transpose(), axis=1)
这就是您要找的。使用 dropna
去掉 NaN
,然后只保留 unique
元素。将此逻辑应用于数据框的每一行以获得所需的结果。
你可以这样做,
data = data.T.loc[data.T["row_1"].drop_duplicates().index, :].T
输出-
0
1
row_1
x
y
row_2
a
b
我需要更新 pandas DataFrame,如下所示。有可能吗? [我非常感谢你所有的时间和努力。抱歉,我的问题引起了你们的困惑。我试图更新问题。再次感谢]
示例 1:
import pandas as pd
#original dataframe
data = {'row_1': ['x','y','x','y'], 'row_2': ['a', 'b', 'a', None]}
data=pd.DataFrame.from_dict(data, orient='index')
print(data)
#desired dataframe from data
data1 = {'row_1': ['x','y'], 'row_2': ['a', 'b']}
data1=pd.DataFrame.from_dict(data1, orient='index')
print(data1)
示例 2:
import pandas as pd
#original dataframe
data = {'row_1': ['x','y','p','x'], 'row_2': ['a', 'b', 'a', None]}
data=pd.DataFrame.from_dict(data, orient='index')
print(data)
#desired dataframe from data
data1 = {'row_1': ['x','y','p'], 'row_2': ['a', 'b']}
data1=pd.DataFrame.from_dict(data1, orient='index')
print(data1)
你可以使用duplicated
方法。查看此 link 以获取有关 pandas' API 参考
data = data.apply(lambda x: x.transpose().dropna().unique().transpose(), axis=1)
这就是您要找的。使用 dropna
去掉 NaN
,然后只保留 unique
元素。将此逻辑应用于数据框的每一行以获得所需的结果。
你可以这样做,
data = data.T.loc[data.T["row_1"].drop_duplicates().index, :].T
输出-
0 | 1 | |
---|---|---|
row_1 | x | y |
row_2 | a | b |