当dataframe A中的列a, b, c, d,遍历每行的数据, 将每行中不为空的数据,连同列名,分类存储到以列名组合成表名的临时表中。 然后将临时表,保存在table_list 列表中。
时间: 2024-09-28 22:12:55 浏览: 33
pandas删除行删除列增加行增加列的实现
这个需求可以使用pandas的迭代功能以及dict来组织数据,以下是基本的Python代码实现:
```python
import pandas as pd
# 假设DataFrame A
df_A = pd.DataFrame({
'a': ['value1', np.nan, 'value3'],
'b': [np.nan, 'value2', np.nan],
'c': ['value4', 'value5', 'value6'],
'd': ['value7', np.nan, 'value9']
})
# 创建一个空列表table_list来存储临时表
table_list = []
# 遍历DataFrame A的每行
for _, row in df_A.iterrows():
# 使用row.to_dict('records')获取字典形式的一行数据
# dropna()移除所有NA值
non_empty_data = row.dropna().to_dict('records')
# 如果非空数据存在,创建一个新的DataFrame并设置列名作为表名
if len(non_empty_data) > 0:
table_name = '_'.join(row.index.tolist()) # 获取列名组合为表名
temp_table = pd.DataFrame(non_empty_data, columns=[table_name])
table_list.append(temp_table)
# 最后,table_list包含了所有的临时表
table_list
```
这段代码会遍历df_A,对于每行非空数据,创建一个新的DataFrame,其列名即为该行的列名连接而成的字符串。然后将这些临时表添加到table_list中。
阅读全文