如何在不同的图形中绘制一列?

2024-06-16 10:46:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下问题。我有这样一个数据帧:

f = pd.DataFrame([['Meyer', 2], ['Mueller', 4], ['Radisch', math.nan], ['Meyer', 2],['Pavlenko', math.nan]])

有没有一种优雅的方法可以通过第一列将数据帧拆分为多个数据帧?所以,我想得到一个数据帧,其中第一列='Müller',第一列的另一个=radich。你知道吗

提前谢谢

埃里克


Tags: 数据方法dataframemathnanpdmeyerller
1条回答
网友
1楼 · 发布于 2024-06-16 10:46:52

可以使用^{}循环A列的^{}值:

df = pd.DataFrame([['Meyer', 2], ['Mueller', 4], 
                   ['Radisch', np.nan], ['Meyer', 2],
                   ['Pavlenko', np.nan]])
df.columns = list("AB")
print (df)
          A    B
0     Meyer  2.0
1   Mueller  4.0
2   Radisch  NaN
3     Meyer  2.0
4  Pavlenko  NaN

print (df.A.unique())
['Meyer' 'Mueller' 'Radisch' 'Pavlenko']

for x in df.A.unique():
    print(df[df.A == x])

       A    B
0  Meyer  2.0
3  Meyer  2.0
         A    B
1  Mueller  4.0
         A   B
2  Radisch NaN
          A   B
4  Pavlenko NaN

然后使用dict理解-获得dictionaryDataFrames

dfs = {x:df[df.A == x].reset_index(drop=True) for x in df.A.unique()}    
print (dfs)
{'Meyer':        A    B
0  Meyer  2.0
1  Meyer  2.0, 'Radisch':          A   B
0  Radisch NaN, 'Mueller':          A    B
0  Mueller  4.0, 'Pavlenko':           A   B
0  Pavlenko NaN}

print (dfs.keys())
dict_keys(['Meyer', 'Radisch', 'Mueller', 'Pavlenko'])

print (dfs['Meyer'])
       A    B
0  Meyer  2.0
1  Meyer  2.0

print (dfs['Pavlenko'])
          A   B
0  Pavlenko NaN

相关问题 更多 >