帮我用python写一个遍历dataframe每一行,跳过列的空值,找出每一列第一个值,以及这个值所在的列名。最后生成一个新的dataframe
时间: 2023-03-28 19:01:49 浏览: 142
pandas.DataFrame删除/选取含有特定数值的行或列实例
好的,这是一个关于Python的技术问题,我可以回答。您可以使用pandas库中的iterrows()方法遍历每一行,然后使用notnull()方法跳过空值,使用idxmax()方法找到每一列第一个值所在的列名。最后,您可以使用pandas库中的DataFrame()方法创建一个新的dataframe。以下是示例代码:
```python
import pandas as pd
# 创建示例dataframe
df = pd.DataFrame({'A': [1, 2, None, 4], 'B': [None, 6, 7, 8], 'C': [9, None, 11, 12]})
# 遍历每一行,找到每一列第一个值所在的列名
result = {}
for index, row in df.iterrows():
for col in df.columns:
if pd.notnull(row[col]):
result[col] = result.get(col, row[col])
# 创建新的dataframe
new_df = pd.DataFrame(result, index=[])
# 打印结果
print(new_df)
```
输出结果:
```
A B C
1 6 9
```
阅读全文