gpt4 book ai didi

python - Pandas ,复制名称重复N次的行

转载 作者:太空宇宙 更新时间:2023-11-03 12:29:55 24 4
gpt4 key购买 nike

示例数据:

df1 = pd.DataFrame({
'file': ['file1','file1','file1','file2','file2','file2','file3','file3','file4'],
'prop1': [True,False,True,False,False,False,True,False,False],
'prop2': [False,False,False,False,True,False,False,True,False],
'prop3': [False,True,False,True,False,True,False,False,True]
})

我需要复制"file"重复 3 次的行,以获得如下内容:

file    prop1   prop2   prop3
0 file1 True False False
1 file1 False False True
2 file1 True False False
3 file2 False False True
4 file2 False True False
5 file2 False False True

最佳答案

使用GroupBy.transform对于与列大小相同的系列,因此可以按 boolean indexing 过滤:

df = df1[df1.groupby('file')['file'].transform('size') == 3]

详细信息:

print (df1.groupby('file')['file'].transform('size'))
0 3
1 3
2 3
3 3
4 3
5 3
6 2
7 2
8 1
Name: file, dtype: int64

或者使用filtration :

df = df1.groupby('file').filter(lambda x: len(x) == 3)

或者使用Series.mapSeries.value_counts :

df = df1[df1['file'].map(df['file'].value_counts()) == 3]

print (df)
file prop1 prop2 prop3
0 file1 True False False
1 file1 False False True
2 file1 True False False
3 file2 False False True
4 file2 False True False
5 file2 False False True

关于python - Pandas ,复制名称重复N次的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58305555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com