pandas A列是字符串,B列为空,A+B结果为A列字符串,该怎么写
时间: 2023-09-09 07:10:35 浏览: 87
可以使用 Pandas 中的 `fillna` 方法来填充 B 列中的空值,然后再使用字符串拼接操作。具体实现如下:
```python
import pandas as pd
# 创建示例数据
df = pd.DataFrame({'A': ['hello', 'world', 'pandas'], 'B': [None, None, None]})
# 填充空值
df['B'].fillna('', inplace=True)
# 拼接字符串
df['A'] + df['B']
```
运行结果为:
```
0 hello
1 world
2 pandas
dtype: object
```
其中,`fillna` 方法的参数可以根据实际情况进行调整。如果 B 列不是空值,可以直接进行字符串拼接操作:`df['A'] + df['B']`。
相关问题
将dataframe A 按照a,b, c, d 列, A的内容为字符串类型,先生成列的所有长度的排列组合, 按照新的列,从A中拆分这些列不为空,其他列为空的子表。
在Pandas中,你可以使用`itertools.product`生成列长度的排列组合,然后结合条件筛选出满足需求的子表。首先,你需要安装`itertools`库(如果尚未安装),可以使用`pip install itertools`命令。
下面是一个步骤说明:
1. 导入所需的库:
```python
import pandas as pd
from itertools import product
```
2. 创建示例DataFrame `A`,这里假设它有四列a、b、c和d,内容均为字符串:
```python
data = {
'a': ['val1', 'val2', 'val3'],
'b': ['val4', '', 'val5'],
'c': ['', 'val6', ''],
'd': ['', '', 'val7']
}
df_A = pd.DataFrame(data)
```
3. 获取所有列长度的排列组合:
```python
col_lengths = df_A.shape[1] # 获取列数
length_combinations = list(product(range(col_lengths + 1), repeat=col_lengths))
```
`length_combinations`现在包含了所有可能的列长度序列。
4. 遍历组合,按组合拆分数据框,并筛选非空值子表:
```python
result_tables = []
for length in length_combinations:
sub_table = df_A.iloc[:, length].dropna() # 提取指定列并去除非空行
if not sub_table.empty: # 如果子表非空,则添加到结果列表
result_tables.append(sub_table)
# 结果是包含所有符合条件子表的列表
```
`result_tables`就是按照指定列长度组合,其中指定列不为空的子表。
使用pandas,合并两列。比如a列为000368,b列为USD,和并后为000368USD
可以使用pandas中的字符串拼接方法,将两列合并成一个新的列。代码如下:
```python
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({'a': ['000368', '000369'], 'b': ['USD', 'EUR']})
# 合并两列
df['c'] = df['a'] + df['b']
print(df)
```
输出结果为:
```
a b c
0 000368 USD 000368USD
1 000369 EUR 000369EUR
```
阅读全文